Currently I have a library that is logging certain information as ERROR. If I change my log4j settings like this:
log4j.logger.com.company.theirpackage.foo=OFF
that will completely disable the library's logging altogether. However, what I'd really like is to still see the information, but have it logged at a WARN or INFO level. In other words, when that particular code calls log.error()
, I want it to be as if they had called log.warn()
or log.info()
instead.
Is there a way to do this with log4j?
I think this is possible, by implementing a Filter, in which the level inside a LoggingEvent is changed when it matches certain conditions.
Not directly, but you could write a custom appender that intercepts the calls, checks the levels, and then prints them at whatever level you want. Or, you could do some aspect oriented programming and intercept/change their calls.
But why would you want to change the level they log it at?