我想通过slf4j在独立程序中使用JBoss logmanager。我使用以下依赖项(使用JBoss7EAP6 maven存储库):
<dependency org="org.slf4j" name="slf4j-api" rev="1.7.2.redhat-2"/>
<dependency org="org.jboss.slf4j" name="slf4j-jboss-logmanager" rev="1.0.2.GA-redhat-1"/>
<dependency org="org.jboss.logmanager" name="log4j-jboss-logmanager" rev="1.0.2.Final-redhat-1"/>
我像这样初始化记录器:
package my.testpackage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
...
private static final Logger LOGGER = LoggerFactory.getLogger(MyClass.class);
我的log4j.properties
:
log4j.rootLogger=ALL, ConsoleAppender
log4j.appender.ConsoleAppender=org.apache.log4j.ConsoleAppender
log4j.appender.ConsoleAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.ConsoleAppender.layout.ConversionPattern=%d{ISO8601} %-5p [%t] %c\: %m%n
log4j.appender.ConsoleAppender.Threshold=WARN
问题是,没有任何记录。查看日志消息的唯一方法是为my.testpackage.MyClass
添加显式记录器配置,如下所示:
log4j.logger.my.testpackage.MyClass=WARN # WORKS
父包配置不起作用
log4j.logger.my=WARN # DOESN'T WORK
答案 0 :(得分:1)
您正在使用的JBoss日志管理器已经很老了,我对此并不了解。我可以为您提供当前版本的信息,1.5.2.Final。
JBoss Log Manager使用自己的配置文件格式,类似于log4j,需要在类路径中调用logging.properties,或者添加系统属性logging.configuration=file:path/to/file.properties
。不幸的是,目前还没有关于它的真实文档,但我会将你的log4j示例转换为JBoss Log Manager格式。
# Additional loggers to configure (the root logger is always configured)
loggers=my.testpackage.MyClass,my
logger.level=INFO
logger.handlers=CONSOLE
logger.my.testpackage.MyClass.level=WARN
logger.my.level=WARN
handler.CONSOLE=org.jboss.logmanager.handlers.ConsoleHandler
handler.CONSOLE.level=INFO
handler.CONSOLE.formatter=COLOR-PATTERN
handler.CONSOLE.properties=autoFlush,target,enabled
handler.CONSOLE.autoFlush=true
handler.CONSOLE.target=SYSTEM_OUT
handler.CONSOLE.enabled=true
formatter.COLOR-PATTERN=org.jboss.logmanager.formatters.PatternFormatter
formatter.COLOR-PATTERN.properties=pattern
formatter.COLOR-PATTERN.pattern=%K{level}%d{HH\:mm\:ss,SSS} %-5p [%t] %c: %s%E%n