目前我有一个将某些信息记录为ERROR的库。如果我改变我的log4j设置:
log4j.logger.com.company.theirpackage.foo=OFF
将完全禁用库的日志记录。但是,我真正喜欢的仍然是看到这些信息,但是它是以WARN或INFO级别记录的。换句话说,当该特定代码调用log.error()
时,我希望它就像是调用了log.warn()
或log.info()
一样。
有没有办法用log4j做到这一点?
答案 0 :(得分:2)
不直接,但您可以编写一个自定义appender来拦截调用,检查级别,然后以您想要的任何级别打印它们。或者,您可以执行一些面向方面的编程并拦截/更改其调用。
但是你为什么要改变他们登录的等级呢?
答案 1 :(得分:1)
我认为这可以通过实施Filter来实现,LoggingEvent中的级别在符合特定条件时会发生变化。