LibraryToggle FramesPrintFeedback

Logging Configuration

Revision History

Overview

The logging system is configured by a combination of two OSGi Admin PIDs and one configuration file:

  • etc/system.properties—the configuration file that sets the logging level during the broker’s boot process. The file contains a single property, org.ops4j.pax.logging.DefaultServiceLog.level, that is set to ERROR by default.

  • org.ops4j.pax.logging—the PID used to configure the logging back end service. It sets the logging levels for all of the defined loggers and defines the appenders used to generate log output. It uses standard Log4j configuration. By default, it sets the root logger's level to INFO and defines two appenders: one for the console and one for the log file.

    [Tip]Tip

    The console's appender is disabled by default. To enable it, add log4j.appender.stdout.append=true to the configuration For example, to enable the console appender in a broker, you would use the following commands:

    FuseMQ:karaf@root> config:edit org.ops4j.pax.logging
    FuseMQ:karaf@root> config:propappend log4j.appender.stdout.append true
    FuseMQ:karaf@root> config:update
  • org.apache.karaf.log.cfg—configures the output of the log console commands.

The most common configuration changes you will make are changing the logging levels, changing the threshold for which an appender writes out log messages, and activating per bundle logging.

Changing the log levels

The default logging configuration sets the logging levels so that the log file will provide enough information to monitor the behavior of the runtime and provide clues about what caused a problem. However, the default configuration will not provide enough information to debug most problems.

The most useful logger to change when trying to debug an issue with Fuse MQ Enterprise is the root logger. You will want to set its logging level to generate more fine grained messages. To do so you change the value of the org.ops4j.pax.logging PID's log4j.rootLogger property so that the logging level is one of the following:

  • TRACE

  • DEBUG

  • INFO

  • WARN

  • ERROR

  • FATAL

  • NONE

Example 23 shows the commands for setting the root loggers log level in a standalone broker.

Example 23. Changing Logging Levels

FuseMQ:karaf@root> config:edit org.ops4j.pax.logging
FuseMQ:karaf@root> config:propset log4j.rootLogger "DEBUG, out, osgi:VmLogAppender"
FuseMQ:karaf@root> config:update

Changing the appenders' thresholds

When debugging a problem in Fuse MQ Enterprise you may want to limit the amount of logging information that is displayed on the console, but not the amount written to the log file. This is controlled by setting the thresholds for each of the appenders to a different level. Each appender can have a log4j.appender.appenderName.threshold property that controls what level of messages are written to the appender. The appender threshold values are the same as the log level values.

Example 24 shows an example of setting the root logger to DEBUG but limiting the information displayed on the console to WARN.

Example 24. Changing the Log Information Displayed on the Console

FuseESB:karaf@root> config:edit org.ops4j.pax.logging
FuseMQ:karaf@root> config:propset log4j.rootLogger "DEBUG, out, osgi:VmLogAppender"
FuseMQ:karaf@root> config:propappend log4j.appender.stdout.threshold WARN
FuseMQ:karaf@root> config:update

Comments powered by Disqus