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,oac_no_warn]
----
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,oac_no_warn]
----
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


