java - 停止从依赖项向控制台显示记录器输出

标签 java xml logging configuration log4j

我的 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/

相关文章:

java - 是什么导致了这个 "No Persistence provider for EntityManager named ___"异常?

c - 检索节点原始字符串

linux - Bash 中的简单日志记录级别

java - 未经检查的compareTo调用

java - 是否建议在每次 findViewById 调用时检查 View 是否为空?

java - 如何以编程方式生成图标并使用它代替快捷方式图标?

PHP 将空数组转换为字符串

go - 为什么 go 程序将输出打印到终端屏幕而不是/dev/stderr?

java - Eclipse RCP 应用程序中的全局异常处理

java - System.loadLibrary 卡住,永远不会返回