Java log4j配置不适用于特定类

Java log4j配置不适用于特定类,java,log4j,slf4j,Java,Log4j,Slf4j,我有一个类,我想把它的日志输出重定向到一个文件。但无论我做什么,它总是输出到控制台。这是我的log4j.properties文件 log4j.rootLogger=INFO, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

我有一个类,我想把它的日志输出重定向到一个文件。但无论我做什么,它总是输出到控制台。这是我的log4j.properties文件

log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %C %l %-5p %c{1}:%L - %t - %m%n

log4j.logger.io.opentracing.impl.LoggingEventBuilder=INFO, ul
log4j.additivity.io.opentracing.impl.LoggingEventBuilder=false
log4j.appender.ul=org.apache.log4j.RollingFileAppender
log4j.appender.ul.maxFileSize=50MB
log4j.appender.ul.file=${catalina.home}/logs/mylogs.log
log4j.appender.ul.layout=org.apache.log4j.PatternLayout
log4j.appender.ul.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %t - %m%n
这里io.opentracing.impl.LoggingEventBuilder是我想要重定向其输出的类。有趣的是,我尝试使用相同的代码模式将其他类的输出重定向到一个文件,结果成功了。只有这门课是不行的


我使用的是slf4j-log4j12。我遗漏了什么?

您已经像这样将记录器定义到类中,
私有静态最终记录器logger=LoggerFactory.getLogger(LoggingEventBuilder.class)和调用日志记录器以记录链接
logger.info(“消息”)

您已经将记录器定义到这样的类中,
私有静态最终记录器logger=LoggerFactory.getLogger(LoggingEventBuilder.class)和调用日志记录器以记录链接
logger.info(“消息”)

非常感谢您的提示。这使我找到了正确的解决办法。显然,该库的作者将他们的记录器定义为类似愚弄的东西。所以我改变了这两行:

log4j.logger.io.opentracing.impl.LoggingEventBuilder=INFO, ul 
log4j.additivity.io.opentracing.impl.LoggingEventBuilder=fal‌​se 


这就解决了问题。

非常感谢您的提示。这使我找到了正确的解决办法。显然,该库的作者将他们的记录器定义为类似愚弄的东西。所以我改变了这两行:

log4j.logger.io.opentracing.impl.LoggingEventBuilder=INFO, ul 
log4j.additivity.io.opentracing.impl.LoggingEventBuilder=fal‌​se 


这就解决了问题。

您是如何在LoggingEventBuilder类中定义
logger
的?我没有该类的代码。这是一个第三方库。如果它是一个第三方类,你怎么知道它使用log4j?它可能正在使用另一个API,并且不会受到log4j Conf的影响。您是如何在LoggingEventBuilder类中定义
logger
的?我没有该类的代码。这是一个第三方库。如果它是一个第三方类,你怎么知道它使用log4j?它可能正在使用另一个API,并且不会受到log4j conf的影响