相关疑难解决方法(0)

log4j rootLogger似乎继承了其他记录器的日志级别.为什么?

我有一个log4J设置,其中根记录器应该将ERROR级别消息和上面的消息记录到控制台,另一个记录器将所有内容记录到syslog中.

log4j.properties是:

# Root logger option
log4j.rootLogger=ERROR,R

log4j.appender.R=org.apache.log4j.ConsoleAppender
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d %p %t %c - %m%n

log4j.logger.SGSearch=DEBUG,SGSearch
log4j.appender.SGSearch=org.apache.log4j.net.SyslogAppender
log4j.appender.SGSearch.SyslogHost=localhost
log4j.appender.SGSearch.Facility=LOCAL6
log4j.appender.SGSearch.layout=org.apache.log4j.PatternLayout
log4j.appender.SGSearch.layout.ConversionPattern=[%-5p] %m%n
Run Code Online (Sandbox Code Playgroud)

在代码我做

private static final Logger logger = Logger.getLogger("SGSearch");
.
.
.
logger.info("Commencing snapshot index [" + args[1] + " -> " + args[2] + "]");
Run Code Online (Sandbox Code Playgroud)

发生的事情是我获得了所有日志记录级别的控制台日志记录.似乎正在发生的事情是,SGSearch的级别会以某种方式覆盖根记录器的级别设置.我无法弄清楚.

我已经确认Log4J正在读取我认为的属性文件,而没有其他(通过-Dlog4j.debug选项)

java log4j

10
推荐指数
2
解决办法
3万
查看次数

log4j打印所有级别

我在我的Java项目上使用以下log4j.properties配置了log4j:

log4j.rootLogger=WARNING, X

log4j.appender.X=org.apache.log4j.ConsoleAppender
log4j.appender.X.layout=org.apache.log4j.PatternLayout
log4j.appender.X.layout.ConversionPattern=%p %m %n

log4j.logger.org.hibernate.SQL=WARNING
log4j.logger.com.****.services.clarity.dao.impl=WARNING
log4j.logger.com.****.services.clarity.controller=WARNING
log4j.logger.com.****.services.clarity.services.impl=WARNING
log4j.logger.com.****.services.clarity.feeds.impl=WARNING
Run Code Online (Sandbox Code Playgroud)

按照配置,它应该只打印WARNING消息,但它会将所有级别打印到DEBUG.

任何想法可以来自哪里?

谢谢 !

java log4j

2
推荐指数
1
解决办法
1010
查看次数

标签 统计

java ×2

log4j ×2