How do I change the logging
FAQ > Using Apache ActiveMQ Classic > How do I change the logging
How do I change the logging
We use slf4j to log information in the broker client and the broker itself so you can fully configure which logging levels are used and whether to log to files or the console etc. For more information see the log4j manual.
You can disable the ActiveMQ Classic logging by editing the conf/log4j.properties file to disable all INFO level logging for activemq by adding this line
log4j.logger.org.apache.activemq=WARN
or to disable stdout logging all together change this line
log4j.rootLogger=INFO, stdout, out
to
log4j.rootLogger=INFO, out
How Do I Change the Logging at Runtime?
The default logging level in ActiveMQ Classic is INFO. This can be seen by starting up the default ActiveMQ Classic binary in a terminal. In doing so, you will see the output shown below:
$ ./bin/activemq
ACTIVEMQ_HOME: /Users/bsnyder/amq/apache-activemq-5.1.0
ACTIVEMQ_BASE: /Users/bsnyder/amq/apache-activemq-5.1.0
Loading message broker from: xbean:activemq.xml
INFO BrokerService - Using Persistence Adapter: AMQPersistenceAdapter(/Users/bsnyder/amq/apache-activemq-5.1.0/data)
INFO BrokerService - ActiveMQ 5.1.0 JMS Message Broker (localhost) is starting
INFO BrokerService - For help or more information please see: http://activemq.apache.org/
INFO AMQPersistenceAdapter - AMQStore starting using directory: /Users/bsnyder/amq/apache-activemq-5.1.0/data
INFO KahaStore - Kaha Store using data directory /Users/bsnyder/amq/apache-activemq-5.1.0/data/kr-store/state
INFO AMQPersistenceAdapter - Active data files: []
INFO KahaStore - Kaha Store using data directory /Users/bsnyder/amq/apache-activemq-5.1.0/data/kr-store/data
INFO TransportServerThreadSupport - Listening for connections at: tcp://mongoose.local:61616
INFO TransportConnector - Connector openwire Started
INFO TransportServerThreadSupport - Listening for connections at: ssl://mongoose.local:61617
INFO TransportConnector - Connector ssl Started
INFO TransportServerThreadSupport - Listening for connections at: stomp://mongoose.local:61613
INFO TransportConnector - Connector stomp Started
INFO TransportServerThreadSupport - Listening for connections at: xmpp://mongoose.local:61222
INFO TransportConnector - Connector xmpp Started
INFO NetworkConnector - Network Connector default-nc Started
INFO BrokerService - ActiveMQ JMS Message Broker (localhost, ID:mongoose.local-56138-1224025139259-0:0) started
INFO log - Logging to org.slf4j.impl.JCLLoggerAdapter(org.mortbay.log) via org.mortbay.log.Slf4jLog
INFO log - jetty-6.1.9
INFO WebConsoleStarter - ActiveMQ WebConsole initialized.
INFO /admin - Initializing Spring FrameworkServlet 'dispatcher'
INFO log - ActiveMQ Console at http://0.0.0.0:8161/admin
INFO log - ActiveMQ Web Demos at http://0.0.0.0:8161/demo
INFO log - RESTful file access application at http://0.0.0.0:8161/fileserver
INFO log - Started SelectChannelConnector@0.0.0.0:8161
INFO FailoverTransport - Successfully connected to tcp://localhost:61616
But stopping ActiveMQ Classic to change the logging level is not always feasible. There are many cases where the logging level and other configuration details may need to be changed at runtime. Using a JMX tool such as jconsole, the logging configuration file can be changed and reloaded without shutting down ActiveMQ Classic.
To change the ActiveMQ Classic logging level from INFO to DEBUG while ActiveMQ Classic is running, start up jconsole, point to the ActiveMQ Classic instance and navigate to the Broker object’s Operations tab as shown below:
To enable debug level logging in ActiveMQ Classic, edit the conf/log4j.properties
file that is part of the ActiveMQ Classic binary distribution to disable INFO level logging and enable DEBUG level logging from this:
log4j.rootLogger=INFO, stdout, out
log4j.logger.org.apache.activemq.spring=WARN
log4j.logger.org.springframework=WARN
log4j.logger.org.apache.xbean.spring=WARN
# When debugging or reporting problems to the ActiveMQ team,
# comment out the above lines and uncomment the next.
#log4j.rootLogger=DEBUG, out, stdout
to this:
#log4j.rootLogger=INFO, stdout, out
log4j.logger.org.apache.activemq.spring=WARN
log4j.logger.org.springframework=WARN
log4j.logger.org.apache.xbean.spring=WARN
# When debugging or reporting problems to the ActiveMQ team,
# comment out the above lines and uncomment the next.
log4j.rootLogger=DEBUG, out, stdout
Notice that the line log4j.rootLogger=INFO, stdout, out
has been commented out and the line log4j.rootLogger=DEBUG, out, stdout
has been uncommented. Save this change and then, in jconsole, click the button named reloadLog4jProperties as shown below:
After clicking the reloadLog4jProperties button, the dialog pops up stating, ‘Method successfully invoked’. This just lets you know that the reloadLog4jProperties
method was invoked to reload the conf/log4j.properties
file. Now notice in the terminal where ActiveMQ Classic is running that the logging that is being output is now DEBUG:
INFO WebConsoleStarter - ActiveMQ WebConsole initialized.
INFO /admin - Initializing Spring FrameworkServlet 'dispatcher'
INFO log - ActiveMQ Console at http://0.0.0.0:8161/admin
INFO log - ActiveMQ Web Demos at http://0.0.0.0:8161/demo
INFO log - RESTful file access application at http://0.0.0.0:8161/fileserver
INFO log - Started SelectChannelConnector@0.0.0.0:8161
INFO FailoverTransport - Successfully connected to tcp://localhost:61616
DEBUG InactivityMonitor - 10000 ms elapsed since last write check.
DEBUG InactivityMonitor - 10000 ms elapsed since last write check.
DEBUG AbstractRegion - Removing consumer: ID:mongoose.local-56517-1224026019987-0:0:-1:1
DEBUG AbstractRegion - Removing consumer: ID:mongoose.local-56511-1224026011897-0:0:1:1
DEBUG TransportConnection - Stopping connection: /127.0.0.1:56518
DEBUG TcpTransport - Stopping transport tcp:///127.0.0.1:56518
DEBUG TransportConnection - Stopped connection: /127.0.0.1:56518
DEBUG TransportConnection - Connection Stopped: /127.0.0.1:56518
DEBUG AbstractRegion - Removing consumer: ID:mongoose.local-56511-1224026011897-0:0:-1:1
DEBUG TransportConnection - Stopping connection: /127.0.0.1:56512
DEBUG TcpTransport - Stopping transport tcp:///127.0.0.1:56512
DEBUG TransportConnection - Stopped connection: /127.0.0.1:56512
DEBUG TransportConnection - Connection Stopped: /127.0.0.1:56512
DEBUG InactivityMonitor - 9999 ms elapsed since last write check.
DEBUG InactivityMonitor - 10000 ms elapsed since last write check.
DEBUG InactivityMonitor - 29999 ms elapsed since last read check.
Disabling DEBUG
level logging and enabling INFO
level logging is done by editing the log4j.properties
file and clicking the reloadLog4jProperties button again.