Centralized Log

Apache Karaf Cellar is able to centralize and manage log service on each node.

Enable Cellar log

Centralized log support is an optionnal feature that you can install using:

karaf@root()> feature:install cellar-log

Display log messages and exceptions

The cluster:log-display command allows you to display all log messages on the cluster or on a specific node in the cluster.

Without argument, cluster:log-display command will display log messages from all nodes in the cluster:

karaf@node1()> cluster:log-display
172.17.42.1:5701 | 2016-07-09T22:21:34+0200 | INFO | pool-52-thread-1 | org.apache.karaf.shell.impl.action.osgi.CommandExtension | Registering commands for bundle org.apache.karaf.cellar.log/4.0.1.SNAPSHOT
172.17.42.1:5701 | 2016-07-09T22:21:34+0200 | INFO | pool-52-thread-1 | org.apache.karaf.features.internal.service.FeaturesServiceImpl | Done.

You can also specify a node (ID or alias) to display only log messages for this specific node:

karaf@node1()> cluster:log-display ALL 172.17.42.1:5701
172.17.42.1:5701 | 2016-07-09T22:21:34+0200 | INFO | pool-52-thread-1 | org.apache.karaf.shell.impl.action.osgi.CommandExtension | Registering commands for bundle org.apache.karaf.cellar.log/4.0.1.SNAPSHOT
172.17.42.1:5701 | 2016-07-09T22:21:34+0200 | INFO | pool-52-thread-1 | org.apache.karaf.features.internal.service.FeaturesServiceImpl | Done.

ALL keyword means log messages for any logger.

It’s also possible to display the log message only for a specific logger:

karaf@node1()> cluster:log-display org.apache.karaf.features
172.17.42.1:5701 | 2016-07-09T22:21:34+0200 | INFO | pool-52-thread-1 | org.apache.karaf.features.internal.service.FeaturesServiceImpl | Done.

The cluster:log-exception-display displays the last occurred exception.

Like the cluster:log-display command, you can also filter by logger and node.

Log a message

At any time, you can log a message of your choice using cluster:log-log command, from the local node and any node in the cluster:

karaf@root()> cluster:log-log "My own message"
karaf@root()> cluster:log-log "My own message" 172.17.42.1:5701

Clear log messages

The cluster:log-clear command cleans the log messages.

Without argument, the command cleans all log messages on the cluster:

karaf@root()> cluster:log-clear

You can specify the node (ID or alias) for which we remove only the log message:

karaf@root()> cluster:log-clear
Get and set log levels

You can change the log level for any logger on all nodes in the cluster or on a specific node using the cluster:log-set command.

karaf@root()> cluster:log-set DEBUG

You can specify the logger to change:

karaf@root()> cluster:log-set DEBUG org.apache.karaf.cellar

And you can also change on a specific node in the cluster instead of all nodes:

karaf@root()> cluster:log-set DEBUG ROOT 172.17.42.1:5701

On the other hand, you can display the current log level on all nodes, for each logger using the cluster:log-set command:

karaf@node1()> cluster:log-get
Node 172.17.42.1:5701 (x)
Logger | Level
--------------
ROOT   | INFO
...

JMX MBeans

All actions you can do using the shell commands can be done with the CellarLogMBean.