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 {productName} 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 {productName} Administration Guide


