Java 停止显示从依赖项到控制台的记录器输出

Java 停止显示从依赖项到控制台的记录器输出,java,xml,logging,configuration,log4j,Java,Xml,Logging,Configuration,Log4j,我是log4j新手,因此请求SOs帮助 在我的Java项目中,我有两个Maven依赖项,它们用冗余的日志信息将控制台输出弄得乱七八糟。我想禁用这种日志记录 我知道将additivity属性设置为false可能会有所帮助。但是不能正确地使用它 我正在寻找一个log4j.xmlconfig,它只从我的项目而不是从任何依赖项打印日志输出(警告、错误…) 重定向目标appender中的所有第三方lib日志,为应用程序使用另一个appender log4j.rootLogger=debug,thirdPa

我是log4j新手,因此请求SOs帮助

在我的Java项目中,我有两个Maven依赖项,它们用冗余的日志信息将控制台输出弄得乱七八糟。我想禁用这种日志记录

我知道将
additivity
属性设置为
false
可能会有所帮助。但是不能正确地使用它


我正在寻找一个
log4j.xml
config,它只从我的项目而不是从任何依赖项打印日志输出(警告、错误…)

重定向目标appender中的所有第三方lib日志,为应用程序使用另一个appender

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将防止应用程序日志以第三方程序结束

在这两行中,不要忘记将com.yourapp替换为顶级软件包名称

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

看起来
log4j2.xml
覆盖了所有其他配置。到目前为止,我已经关闭了这种依赖关系。可能是
log4j2>log4j
导致了这个问题。还有我在某处看到的
xml>properties

你有log4j.xml/log4j.properties文件吗?检查你的log4j.properties?我使用取自
www.mkyong.com/logging/log4j-xml-example/
的log4j.properties文件,如果可行的话也可以使用log4j.properties文件。对不起,我是个哑巴,
thirdPartyLibAppender
只是一个名字,对吗?我希望它不会指向任何特定的appender beacs,因为我不知道任何特定的名称:(以及
yourapp
:'的真实值是什么?(是的,只是一个名称,您可以更改它,根据需要定义appender。您能给我一个完整的log4j.properties文件,其中myapp在控制台上登录,3rdpartyapp在一个文件中:)您可以发布您的配置文件吗?非常感谢您,但仍然没有什么乐趣,我遗漏了一些东西。看起来依赖jar中的
log4j2.xml
正在覆盖我的
log4j.properties