是否可以在log4j中更改包的日志级别?

时间:2010-01-13 21:20:37

标签: java logging log4j

目前我有一个将某些信息记录为ERROR的库。如果我改变我的log4j设置:

log4j.logger.com.company.theirpackage.foo=OFF

将完全禁用库的日志记录。但是,我真正喜欢的仍然是看到这些信息,但是它是以WARN或INFO级别记录的。换句话说,当该特定代码调用log.error()时,我希望它就像是调用了log.warn()log.info()一样。

有没有办法用log4j做到这一点?

2 个答案:

答案 0 :(得分:2)

不直接,但您可以编写一个自定义appender来拦截调用,检查级别,然后以您想要的任何级别打印它们。或者,您可以执行一些面向方面的编程并拦截/更改其调用。

但是你为什么要改变他们登录的等级呢?

答案 1 :(得分:1)

我认为这可以通过实施Filter来实现,LoggingEvent中的级别在符合特定条件时会发生变化。