Chapter 42. 日志(Logging)

HornetQ有自己的独立的日志系统,不依赖于任何其它的日志框架。在默认情况下所有HornetQ的日志将输入到 标准的JDK日志系统, (即JUL-Java Util Logging)。服务器在默认条件下读取config目录下的 logging.properties文件做为JUL的配置文件。它配置了使用HornetQ自己的格式化 方法,将日志输出到屏幕终端(Console)及文件中。请访问Sun公司的相关网址来进一步了解如何配置使用JUL。

你可以通过编程或定义系统变量的方法来配置不同的日志代理(Logging Delegate)。

采用编程方法,只需要调用方法:

org.hornetq.core.logging.Logger.setDelegateFactory(new Log4jLogDelegateFactory())

其中Log4jLogDelegateFactory实现了org.hornetq.spi.core.logging.LogDelegateFactory 接口。

如果要使用系统变量方法,则需要设置变量org.hornetq.logger-delegate-factory-class-name为相应的代理工厂,即

-Dorg.hornetq.logger-delegate-factory-class-name=org.hornetq.integration.logging.Log4jLogDelegateFactory

上面的例子可以看出HornetQ提供了一些代理工厂以方便用户使用,它们是:

  1. org.hornetq.core.logging.impl.JULLogDelegateFactory - 默认的JUL日志代理工厂。

  2. org.hornetq.integration.logging.Log4jLogDelegateFactory - Log4J的日志代理工厂。

如果在客户端使用JUL代理,注意要提供logging.properties文件,并且在客户端启动之前设置java.util.logging.config.file属性。

42.1. 与JBoss应用服务器日志的关系

当HornetQ部署到JBoss应用服务器版本5.x或以上时,虽然HornetQ仍然使用JUL,但是所有的日志输出被重定向到 JBoss logger。请参阅相关的JBoss文档来了解更多的信息。如果是以前版本的JBoss,则必需指定你所需要的日志代理。