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

问题描述 投票:2回答:2

我是个新手,所以希望得到SOs的帮助。

在我的Java项目中,我有几个Maven依赖,它们会在控制台输出多余的日志信息。我想禁用这些日志。

我知道设置 additivity 属性为 false 可能会有帮助。但无法正常使用。

我正在寻找一个 log4j.xml 配置,只打印我的项目的日志输出(warning, error ...),而不打印任何依赖关系的日志。

java xml logging configuration log4j
2个回答
2
投票

将所有的第三方lib日志重定向到目标appender中,用另一个appender来处理你的app。

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

0
投票

它看起来像 log4j2.xml 覆盖了所有其他配置。到目前为止,我已经关闭了这个依赖关系。也许 log4j2 > log4j 因此,这个问题。另外 xml > properties 正如我在哪里看到的。

© www.soinside.com 2019 - 2024. All rights reserved.