log4j的不写日志
问题描述:
下面是我的log4j配置log4j的不写日志
#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
日志消息没有得到印在控制台上
<dependency>
<groupId>org.apache.qpid</groupId>
<artifactId>qpid-amqp-1-0-client-jms</artifactId>
<version>0.22</version>
</dependency>
编辑 我是java中的新手......我添加了日志记录依赖项。我是否需要在某处添加一些设置来将sl4j日志重定向到log4j?
<slf4j-version>1.6.6</slf4j-version>
<log4j-version>1.2.17</log4j-version>
<!-- Logging -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j-version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j-version}</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j-version}</version>
</dependency>
答
的(废弃)qpid-amqp-1-0-client-jms
客户机使用java.util.logging
,而不是log4j的。从mail我送回在2014年到[email protected]邮件列表报价:
你可以通过设置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]}
注意,在这个老客户的记录实在是非常小的和最好你应该你的代码,而不是迁移到支持Qpid JMS客户端的AMQP 1.0 https://qpid.apache.org/components/jms/index.html这确实使用SLF4J,但使用的连接和队列不同的配置语法。
我很确定apache org.apache.qpid使用slf4j进行日志记录,你有没有设置__slf4j binder__来使用log4j作为实现?您是否尝试添加用于检查log4j-slf4j-impl-2.0.jar jar? – gtosto
@gtosto增加了你需要的细节作为编辑..我也是新手到java,我需要一些其他配置设置某处重定向sl4j到log4j –
如果你可以:我建议你使用更新版本的qpid amqp客户端依赖于slf4j。否则就像@ rob-godfrey所说的,你必须配置内置的java日志框架。看到他的答案。 – gtosto