我想更改storm的日志文件目录和我自己的日志
我正在localcluster上工作,我编写了简单的代码并从ide(intellij)运行它,它运行正常,还显示了日志。
我已经决定为我自己的日志使用slf4j,并且我看到storm在内部使用这个依赖关系:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.8.2</version>
<scope>compile</scope>
</dependency>
因此,我决定使用slf4j与log4j绑定。
以下是我的依赖项:(其中slf4j版本是1.7.25)
<dependencies>
<dependency>
<groupId>org.apache.storm</groupId>
<artifactId>storm-core</artifactId>
<version>1.2.2</version>
<scope>compiled</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
</dependencies>
这里是my log4j.properties(我已经在参考资料下创建了这个文件)
注意:我也尝试了完整的文件路径而不是引用。不起作用
# Root logger option
log4j.rootLogger=info, stdout, file
# Redirect log messages to console
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.SSS} [%thread] %-5p %c %m%n
# Redirect log messages to a log file, support file rolling.
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=Log4jFiles/lcf4j.log
log4j.appender.file.MaxFileSize=100MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy:MM:dd HH:mm:ss.SSS} [%thread] %-5p %c %m%n
这是一张图片,可能有帮助:图片
1条答案
按热度按时间igetnqfo1#
从外观上看,您的类路径中可能有另一个log4j.properties文件,而不是这个文件。有时它可以包含在jar文件中。
一个可能的解决方案是排除storm的日志依赖性,并提供自己的日志依赖性和log4j.properties