log4j 停止从依赖关系向控制台显示记录器输出

sauutmhj  于 2022-11-23  发布在  其他
关注(0)|答案(2)|浏览(143)

我的Java项目中有一些Maven依赖项,这些依赖项使控制台输出中充斥着冗余的日志信息。
additivity属性设置为false可能会有帮助。但无法正确使用它。
我正在寻找一个log4j.xml配置,将只打印日志输出(warnerror,...)从我的项目,而不是从任何依赖关系。

pexxcrt2

pexxcrt21#

重定向目标附加器中的所有第三方库日志,为您的应用程序使用其他附加器

log4j.rootLogger=debug,thirdPartyLibAppender 
log4j.logger.com.yourapp=debug, yourAppAppender
log4j.additivity.com.yourapp=false

# define where do you want third party lib logs to land : in a file
log4j.appender.thirdPartyLibAppender=org.apache.log4j.FileAppender
log4j.appender.thirdPartyLibAppender.append=true
log4j.appender.thirdPartyLibAppender.file=/tmp/app.log
log4j.appender.thirdPartyLibAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.thirdPartyLibAppender.layout.ConversionPattern=[%p] %c:%m%n

# define where do you want your app logs to land : stdout
log4j.appender.yourAppAppender=org.apache.log4j.ConsoleAppender
log4j.appender.yourAppAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.yourAppAppender.layout.ConversionPattern=[%p] %c:%m%n

将additivity设置为false将防止应用日志以thirdPartyLibAppender结尾

    • 在这两行中,不要忘记用顶级软件包名称替换com. yourapp**
log4j.logger.com.yourapp=debug, yourAppAppender
log4j.additivity.com.yourapp=false
2nc8po8w

2nc8po8w2#

看起来log4j2.xml覆盖了所有其他配置。到目前为止,我已经关闭了这个依赖关系。也许log4j2 > log4j就是这个问题的原因。而且,XML的优先级高于properties,我在某个地方看到过。

相关问题