JBoss.orgCommunity Documentation

Chapter 42. Logging

42.1. Logging in a client or with an Embedded server
42.2. Logging With The JBoss Application Server

HornetQ uses the JBoss Logging framework to do its logging and is configurable via the logging.properties file found in the configuration directories. This is configured by Default to log to both the console and to a file.

There are 6 loggers availabe which are as follows:

Table 42.1. Global Configuration Properties

LoggerLogger Description
org.jboss.loggingLogs any calls not handled by the HornetQ loggers
org.hornetq.core.serverLogs the core server
org.hornetq.utilsLogs utility calls
org.hornetq.journalLogs Journal calls
org.hornetq.jmsLogs JMS calls
org.hornetq.integration.bootstrapLogs bootstrap calls

you can configure the levels on these loggers independently in the appropriate logging.properties file


Firstly, if you want to enable logging on the client side you need to include the jboss logging jars in your library. If you are using the distribution make sure the jnp-client.jar is included or if you are using maven add the following dependencies.

   <dependency>
   <groupId>org.jboss.naming</groupId>
   <artifactId>jnp-client</artifactId>
   <version>5.0.5.Final</version>
      <exclusions>
         <exclusion>
            <groupId>org.jboss.logging</groupId>
            <artifactId>jboss-logging-spi</artifactId>
         </exclusion>
      </exclusions>
   </dependency>
   <dependency>
      <groupId>org.jboss.logmanager</groupId>
      <artifactId>jboss-logmanager</artifactId>
      <version>1.3.1.Final</version>
   </dependency>
   <dependency>
       <groupId>org.hornetq</groupId>
       <artifactId>hornetq-core-client</artifactId>
       <version>2.3.0.BETA1</version>
   </dependency>
         

The first dependency jnp-client is not actually needed for logging, however this is needed for using JNDI and imports a previous version JBoss logging which needs to be excluded

There are 2 properties you need to set when starting your java program, the first is to set the Log Manager to use the JBoss Log Manager, this is done by setting the -Djava.util.logging.manager property i.e. -Djava.util.logging.manager=org.jboss.logmanager.LogManager

The second is to set the location of the logging.properties file to use, this is done via the -Dlogging.configuration for instance -Dlogging.configuration=file:///home/user/projects/myProject/logging.properties.

The following is a typical logging.properties for a client

   # Root logger option
   loggers=org.jboss.logging,org.hornetq.core.server,org.hornetq.utils,org.hornetq.journal,org.hornetq.jms,org.hornetq.ra

   # Root logger level
   logger.level=INFO
   # HornetQ logger levels
   logger.org.hornetq.core.server.level=INFO
   logger.org.hornetq.utils.level=INFO
   logger.org.hornetq.jms.level=DEBUG

   # Root logger handlers
   logger.handlers=FILE,CONSOLE

   # Console handler configuration
   handler.CONSOLE=org.jboss.logmanager.handlers.ConsoleHandler
   handler.CONSOLE.properties=autoFlush
   handler.CONSOLE.level=FINE
   handler.CONSOLE.autoFlush=true
   handler.CONSOLE.formatter=PATTERN

   # File handler configuration
   handler.FILE=org.jboss.logmanager.handlers.FileHandler
   handler.FILE.level=FINE
   handler.FILE.properties=autoFlush,fileName
   handler.FILE.autoFlush=true
   handler.FILE.fileName=hornetq.log
   handler.FILE.formatter=PATTERN

   # Formatter pattern configuration
   formatter.PATTERN=org.jboss.logmanager.formatters.PatternFormatter
   formatter.PATTERN.properties=pattern
   formatter.PATTERN.pattern=%d{HH:mm:ss,SSS} %-5p [%c] %s%E%n
         

When HornetQ is deployed within the JBoss Application Server version 7.x or above then it will still use JBoss Logging, refer to the AS7 documentation on how to configure AS7 logging.