每个 SLF4J 日志消息都包含一个嵌套消息
Each SLF4J log message contains a nested message
我使用 JBoss 5.2,每当我记录一些东西时,slf4j 会输出一条嵌套的日志消息,例如
private final static Logger logger = LoggerFactory.getLogger(MyClass.class);
...
logger.info("FOOBAR")
将导致日志消息:
2015-06-11 09:54:37,154 INFO [STDOUT] (quartzScheduler_Worker-1) 09:54:37,154 INFO [MyClass] FOOBAR
内层消息是正确的,为什么外层说日志class是STDOUT?
非项目 classes(库-classes)日志消息看起来不错,例如,
2015-06-11 09:54:16,538 FINE [javax.activation] (quartzScheduler_Worker-1) MailcapCommandMap: load DEF
这是我的 log4j 设置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
<appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="File" value="server.log"/>
<param name="Append" value="true"/>
<param name="Threshold" value="DEBUG"/>
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%c] (%t) %m%n"/>
</layout>
</appender>
<root>
<priority value="DEBUG"/>
<appender-ref ref="FILE" />
</root>
</log4j:configuration>
我通过排除 JBoss 版本的 slf4j 解决了这个问题。我还有多个版本的 SLF4J,但它似乎可以工作。
2015-06-11 12:30:09,540 ERROR [STDERR] (main) SLF4J: Class path contains multiple SLF4J bindings.
为了排除 JBoss slf4,我创建了包含以下内容的文件 WEB-INF/jboss-deployment-structure.xml:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<exclusions>
<module name="org.slf4j" />
</exclusions>
</deployment>
</jboss-deployment-structure>
我使用 JBoss 5.2,每当我记录一些东西时,slf4j 会输出一条嵌套的日志消息,例如
private final static Logger logger = LoggerFactory.getLogger(MyClass.class);
...
logger.info("FOOBAR")
将导致日志消息:
2015-06-11 09:54:37,154 INFO [STDOUT] (quartzScheduler_Worker-1) 09:54:37,154 INFO [MyClass] FOOBAR
内层消息是正确的,为什么外层说日志class是STDOUT?
非项目 classes(库-classes)日志消息看起来不错,例如,
2015-06-11 09:54:16,538 FINE [javax.activation] (quartzScheduler_Worker-1) MailcapCommandMap: load DEF
这是我的 log4j 设置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
<appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="File" value="server.log"/>
<param name="Append" value="true"/>
<param name="Threshold" value="DEBUG"/>
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%c] (%t) %m%n"/>
</layout>
</appender>
<root>
<priority value="DEBUG"/>
<appender-ref ref="FILE" />
</root>
</log4j:configuration>
我通过排除 JBoss 版本的 slf4j 解决了这个问题。我还有多个版本的 SLF4J,但它似乎可以工作。
2015-06-11 12:30:09,540 ERROR [STDERR] (main) SLF4J: Class path contains multiple SLF4J bindings.
为了排除 JBoss slf4,我创建了包含以下内容的文件 WEB-INF/jboss-deployment-structure.xml:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<exclusions>
<module name="org.slf4j" />
</exclusions>
</deployment>
</jboss-deployment-structure>