How do I enable debug logs in WildFly?

This tutorial will teach you how to change the default log level in WildFly using the management instruments available

There are two simple ways to change log level in WildFly. You can either:

  • Change the ROOT logger setting
  • Change the single Logger verbosity

Let’s see the pros and cons of each approach.

Change the Root Logger settings

This is a brute-force option which will change the log level of all loggers available in the WildFly application server. All classes that don’t have a configured logger, will inherit from the ROOT logger.

To do that, run the following command from the CLI:

/subsystem=logging/root-logger=ROOT:change-root-log-level(level=DEBUG)

As a result, your XML configuration will change accordingly:

<root-logger>
  <level name="DEBUG"/>
       <handlers>
          <handler name="CONSOLE"/>
          <handler name="FILE"/>
       </handlers>
</root-logger>

You can then restore it as follows:

/subsystem=logging/root-logger=ROOT:change-root-log-level(level=INFO)

We don’t recommend using this approach though as it will generate a large amount of logs. Unless you don’t have a clue about the package you want to debug, it is advisable to change the specific logger verbosity.

Change the Single Logger Verbosity

This is the recommended approach. Pick up a namespace (f.e. “com.acme”) and change the level to DEBUG (or one of the available log levels). Also

/subsystem=logging/logger=com.acme:add(level=DEBUG)

Finally, it is worth mentioning that also Log Handlers have a Log Verbosity Level. You can set it as follows:

/subsystem=logging/console-handler=CONSOLE:write-attribute(name=level, value=DEBUG)

Note: in case the single Logger level is set to a different value than the Handler’s level, the Logger level will prevail, as it’s more specific attribute.

Changing the Logger Verbosity on OpenShift

if your application server is running on OpenShift, you can either provide a custom standalone-openshift.xml file or set the logger using the rsh shell command.

For example, to add a Logger for the com.acme package:

oc exec <POD_NAME> -- /opt/eap/bin/jboss-cli.sh -c --command="/subsystem=logging/logger=com.acme:add(level=DEBUG)"

You can then remove it when it’s not needed any more:

oc exec <POD_NAME> -- /opt/eap/bin/jboss-cli.sh -c --command="/subsystem=logging/logger=com.acme:remove()"

Recommended Articles

Configure JBoss Logging Handler for Separate Package Log File

Learn how to configure a JBoss logging handler to write logs for a specific package to a separate log file, allowing you to add verbosity without mixing with application server logs.

Mastering WildFly Stability Levels: Ensuring Quality and Compatibility

Discover how to leverage WildFly's stability levels for optimal feature quality, stability, and compatibility. #WildFlyStability #JavaMiddleware #CloudNative

Inspection and Management of WildFly Logs via Command Line Interface - A Comprehensive Guide

Learn how to inspect WildFly logs using CLI with detailed examples and parameters for efficient log management.

Optimize Server Performance with Advanced WildFly and JBoss EAP Concurrency Settings

Learn how to configure max concurrent request limits at server, connector, and application levels in WildFly and JBoss EAP for improved performance. #WildFly #JbossEAP #JavaConcurrency