log4j没有写日志

时间:2017-10-17 08:52:39

标签: java log4j qpid

以下是我的log4j配置

NO_ERRORS_SCHEMA

然后在代码中

#log4j.additivity.org.apache.qpid=false

log4j.rootLogger=DEBUG, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.threshold=DEBUG
log4j.appender.console.layout.ConversionPattern=%-7p %d [%t] %c %x - %m%n

log4j.logger.javax.jms=DEBUG
log4j.logger.org.apache.qpid=DEBUG
log4j.logger.org.apache.qpid.amqp_1_0=DEBUG
log4j.logger.org.apache.qpid.amqp_1_0.jms=DEBUG

我的调试消息 String log4jConfigFile = System.getProperty("user.dir") + File.separator + "log4j.properties"; PropertyConfigurator.configure(log4jConfigFile); logger.debug("this is a debug log message"); 确实已打印但来自this is a debug log message的日志消息未在控制台上打印

org.apache.qpid

修改 我是java的新手...我添加了日志记录依赖项。我是否需要在某处添加一些设置以将sl4j日志重定向到log4j ??

    <dependency>
        <groupId>org.apache.qpid</groupId>
        <artifactId>qpid-amqp-1-0-client-jms</artifactId>
        <version>0.22</version>
    </dependency>

1 个答案:

答案 0 :(得分:0)

(已弃用)qpid-amqp-1-0-client-jms客户端使用java.util.logging,而不是log4j。引用我在2014年寄回的mail到users@qpid.apache.org邮件列表:

  

您可以通过设置Java系统属性将其打开   java.util.logging.config.file指向一个看起来像什么的文件   像这样:

handlers=java.util.logging.FileHandler FRM.level=ALL
java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
java.util.logging.SimpleFormatter.format=[%1$tc] %4$s: %5$s%n

java.util.logging.FileHandler.level=ALL`

# (The output file is placed in the directory
# defined by the "user.home" System property.) 
java.util.logging.FileHandler.pattern=%h/qpid-jms-%u.log`
     

当您运行客户端时,它应该生成一个名为的文件   主目录中的qpid-jms-0.log,其输出看起来很像   类似的东西:

[Mon Feb 24 18:45:58 CET 2014] FINE: RECV[/127.0.0.1:5672|0] :
SaslMechanisms{saslServerMechanisms=[ANONYMOUS]}

请注意,此旧客户端中的日志记录实际上非常小,理想情况下,您应该将代码迁移到支持的QQid JMS客户端,以获取使用slf4j的AMQP 1.0 https://qpid.apache.org/components/jms/index.html,但对连接使用不同的配置语法队列。