我的 Java 项目中有一些 Maven 依赖项,这些依赖项使控制台输出与冗余日志信息变得困惑。我想禁用此类日志记录。
将 additivity
属性设置为 false
可能会有所帮助。但无法正常使用。
我正在寻找一个 log4j.xml
配置,它只会打印我的项目中的日志输出(警告
、错误
,...),而不是任何依赖项。
最佳答案
重定向目标附加程序中的所有第三方库日志,为您的应用程序使用另一个附加程序
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
关于java - 停止从依赖项向控制台显示记录器输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26280337/