我是个新手,所以希望得到SOs的帮助。
在我的Java项目中,我有几个Maven依赖,它们会在控制台输出多余的日志信息。我想禁用这些日志。
我知道设置 additivity
属性为 false
可能会有帮助。但无法正常使用。
我正在寻找一个 log4j.xml
配置,只打印我的项目的日志输出(warning, error ...),而不打印任何依赖关系的日志。
将所有的第三方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
它看起来像 log4j2.xml
覆盖了所有其他配置。到目前为止,我已经关闭了这个依赖关系。也许 log4j2 > log4j
因此,这个问题。另外 xml > properties
正如我在哪里看到的。