type=page
status=published
title=list-log-attributes
next=list-loggers.html
prev=list-lifecycle-modules.html
~~~~~~

list-log-attributes
===================

[[list-log-attributes-1]][[GSRFM00182]][[list-log-attributes]]

list-log-attributes
-------------------

Lists all logging attributes defined for a specified target in a domain

[[sthref1630]]

=== Synopsis

[source]
----
asadmin [asadmin-options] list-log-attributes [--help]
[target]
----

[[sthref1631]]

=== Description

The `list-log-attributes` subcommand lists all logging attributes
currently defined for the specified \{product---name} domain or target
within a domain. The values listed correspond to the values in the
`logging.properties` file for the domain.

This subcommand is supported in remote mode only.

[[sthref1632]]

=== Options

asadmin-options::
  Options for the `asadmin` utility. For information about these
  options, see the link:asadmin.html#asadmin-1m[`asadmin`(1M)] help page.
`--help`::
`-?`::
  Displays the help text for the subcommand.

[[sthref1633]]

=== Operands

target::
  Valid values are:
  * `server` - The default server instance. This is the default value.
  * configuration_name - The name of a specific configuration.
  * cluster_name - The name of a target cluster.
  * instance_name - The name of a target server instance.

[[sthref1634]]

=== Examples

[[GSRFM682]][[sthref1635]]

==== Example 1   Listing the Logger Attributes for a Domain

This example lists all loggers attributes for the default domain.

[source,subs="none"]
----
asadmin> list-log-attributes
com.sun.enterprise.server.logging.GFFileHandler.alarms <false>
com.sun.enterprise.server.logging.GFFileHandler.file \
<${com.sun.aas.instanceRoot}/logs/server.log>
com.sun.enterprise.server.logging.GFFileHandler.flushFrequency <1>
com.sun.enterprise.server.logging.GFFileHandler.formatter \
<com.sun.enterprise.server.logging.UniformLogFormatter>
com.sun.enterprise.server.logging.GFFileHandler.logtoConsole <false>
com.sun.enterprise.server.logging.GFFileHandler.maxHistoryFiles <0>
com.sun.enterprise.server.logging.GFFileHandler.retainErrorsStasticsForHours <0>
com.sun.enterprise.server.logging.GFFileHandler.rotationLimitInBytes <2000000>
com.sun.enterprise.server.logging.GFFileHandler.rotationTimelimitInMinutes <0>
com.sun.enterprise.server.logging.SyslogHandler.useSystemLogging <false>
handlers <java.util.logging.ConsoleHandler>
java.util.logging.ConsoleHandler.formatter \
<com.sun.enterprise.server.logging.UniformLogFormatter>
java.util.logging.FileHandler.count <1>
java.util.logging.FileHandler.formatter <java.util.logging.XMLFormatter>
java.util.logging.FileHandler.limit <50000>
java.util.logging.FileHandler.pattern <%h/java%u.log>
log4j.logger.org.hibernate.validator.util.Version <warn>

Command list-log-attributes executed successfully.
----

[[sthref1636]]

=== Exit Status

0::
  subcommand executed successfully
1::
  error in executing the subcommand

[[sthref1637]]

=== See Also

link:asadmin.html#asadmin-1m[`asadmin`(1M)]

link:collect-log-files.html#collect-log-files-1[`collect-log-files`(1)],
link:list-log-levels.html#list-log-levels-1[`list-log-levels`(1)],
link:rotate-log.html#rotate-log-1[`rotate-log`(1)],
link:set-log-attributes.html#set-log-attributes-1[`set-log-attributes`(1)],
link:set-log-levels.html#set-log-levels-1[`set-log-levels`(1)]

"link:../administration-guide/logging.html#GSADG00010[Administering the Logging Service]" in GlassFish
Server Open Source Edition Administration Guide


