type=page
status=published
title=list-log-levels
next=list-managed-executor-services.html
prev=list-loggers.html
~~~~~~

list-log-levels
===============

[[list-log-levels-1]][[GSRFM00183]][[list-log-levels]]

list-log-levels
---------------

Lists the loggers and their log levels

[[sthref1645]]

=== Synopsis

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

[[sthref1646]]

=== Description

The `list-log-levels` subcommand lists the current \{product---name}
loggers and their log levels. This subcommand reports on all the loggers
that are listed in the `logging.properties` file. In some cases, loggers
that have not been created by the respective containers will appear in
the list.

This subcommand is supported in remote mode only.

[[sthref1647]]

=== 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.
`--target`::
  The server, cluster or server instance for which log levels will be listed.

[[sthref1648]]

=== Operands

target::
  Valid values are:

  * server_name - Default target is `server`. If no target is specified
  then log levels are listed for the server.
  * cluster_name - The name of a target cluster.
  * instance_name - The name of a target server instance.

[[sthref1649]]

=== Examples

[[GSRFM683]][[sthref1650]]

==== Example 1   Listing the Log Levels

This example lists the existing loggers and indicates how their log
levels are set.

[source]
----
asadmin> list-log-levels
java.util.logging.ConsoleHandler        <FINEST>
jakarta.enterprise.resource.corba <INFO>
jakarta.enterprise.resource.javamail      <INFO>
jakarta.enterprise.resource.jdo   <INFO>
jakarta.enterprise.resource.jms   <INFO>
jakarta.enterprise.resource.jta   <INFO>
jakarta.enterprise.resource.resourceadapter       <INFO>
jakarta.enterprise.resource.sqltrace      <FINE>
jakarta.enterprise.resource.webcontainer.jsf.application  <INFO>
jakarta.enterprise.resource.webcontainer.jsf.config       <INFO>
jakarta.enterprise.resource.webcontainer.jsf.context      <INFO>
jakarta.enterprise.resource.webcontainer.jsf.facelets     <INFO>
jakarta.enterprise.resource.webcontainer.jsf.lifecycle    <INFO>
jakarta.enterprise.resource.webcontainer.jsf.managedbean  <INFO>
jakarta.enterprise.resource.webcontainer.jsf.renderkit    <INFO>
jakarta.enterprise.resource.webcontainer.jsf.resource     <INFO>
jakarta.enterprise.resource.webcontainer.jsf.taglib       <INFO>
jakarta.enterprise.resource.webcontainer.jsf.timing       <INFO>
jakarta.enterprise.system.container.cmp   <INFO>
jakarta.enterprise.system.container.ejb   <INFO>
jakarta.enterprise.system.container.ejb.mdb       <INFO>
jakarta.enterprise.system.container.web   <INFO>
jakarta.enterprise.system.core.classloading       <INFO>
jakarta.enterprise.system.core.config     <INFO>
jakarta.enterprise.system.core    <INFO>
jakarta.enterprise.system.core.naming     <INFO>
jakarta.enterprise.system.core.security   <INFO>
jakarta.enterprise.system.core.selfmanagement     <INFO>
jakarta.enterprise.system.core.transaction        <INFO>
jakarta.enterprise.system <INFO>
jakarta.enterprise.system.tools.admin     <INFO>
jakarta.enterprise.system.tools.backup    <INFO>
jakarta.enterprise.system.tools.deployment        <INFO>
jakarta.enterprise.system.util    <INFO>
jakarta.enterprise.system.webservices.registry    <INFO>
jakarta.enterprise.system.webservices.rpc <INFO>
jakarta.enterprise.system.webservices.saaj        <INFO>
javax   <INFO>
javax.org.glassfish.persistence <INFO>
org.apache.catalina     <INFO>
org.apache.coyote       <INFO>
org.apache.jasper       <INFO>
org.glassfish.admingui  <INFO>
org.jvnet.hk2.osgiadapter       <INFO>
Command list-log-levels executed successfully.
----

[[sthref1651]]

=== Exit Status

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

[[sthref1652]]

=== 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-attributes.html#list-log-attributes-1[`list-log-attributes`(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


