Java Log4j:在加载第三方jar后,记录器停止工作

Java Log4j:在加载第三方jar后,记录器停止工作,java,spring,logging,log4j,slf4j,Java,Spring,Logging,Log4j,Slf4j,在调用第三方jar的方法后,记录器突然停止工作。我已经检查了jar的代码,他们也使用log4j和log4j.xml。我正在使用属性文件配置log4j 我的log4j配置 log4j.rootLogger=DEBUG, stdout, R #log4j.rootLogger=ERROR, stdout, R log4j.appender.R.File=/logs/app_test.log log4j.appender.R.MaxFileSize=10MB log4j.appender.R.layo

在调用第三方jar的方法后,记录器突然停止工作。我已经检查了jar的代码,他们也使用log4j和log4j.xml。我正在使用属性文件配置log4j

我的log4j配置

log4j.rootLogger=DEBUG, stdout, R
#log4j.rootLogger=ERROR, stdout, R
log4j.appender.R.File=/logs/app_test.log
log4j.appender.R.MaxFileSize=10MB
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.MaxBackupIndex=175
log4j.appender.R.layout.ConversionPattern=%d %p %t %c - %m%n
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.R=org.apache.log4j.RollingFileAppender
第三方日志配置(log4j.xml)


我已经阅读了log4j网站上的配置,首选项总是转到log4j.xml而不是属性文件。所以,我不想在第三方jar中进行更改。我假设它们覆盖了我的log4j配置,但我不知道确切的问题,因为即使system.out.println也不起作用

那么我们如何解决这个问题呢?有没有什么方法可以忽略第三方日志配置


任何建议都会很有帮助,谢谢。

不,您不能忽略第三方日志,您可以通过从外部加载log4j配置来覆盖它们

PropertyConfigurator.configure("log4j.properties");

但理想情况下,这不是一个好的做法。您应该告诉他们谁为您提供了jar,他们应该解决这个问题,因为任何第三方jar都不应该影响您的配置。

您是否尝试使用命令行参数明确指定它,例如:
-Dlog4j.configuration=log4j.properties
?是的,但对我不起作用。通过添加VM参数来检查它
PropertyConfigurator.configure("log4j.properties");