繁体   English   中英

log4j-日志未写入文件

[英]log4j - logs not written to file

我已经看到有关此问题,但没有一个对我有帮助。 我正在使用log4j,但由于它在控制台上工作正常,因此它不会向声明的文件中写入任何内容。 而且,文件已创建,但没有保存任何内容。 码:

#default
log4j.rootLogger=ERROR,console

#Console Appender
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%5p] [%t %d{hh:mm:ss}] (%F:%M:%L) %m%n

#Custom assignments
log4j.logger.controller=DEBUG,console
log4j.logger.service=DEBUG,console
log4j.logger.dao=DEBUG,console

#Disable additivity
log4j.additivity.controller=false
log4j.additivity.service=false
log4j.additivity.dao=false

#MyLogger
log4j.logger.classPath.myClass = INFO, CACHE

log4j.appender.CACHE=org.apache.log4j.RollingFileAppender
log4j.appender.CACHE.File = ./logs/cache.log
log4j.appender.CACHE.bufferedIO = false
log4j.appender.CACHE.ImmediateFlush=true
log4j.appender.CACHE.Threshold=info
log4j.appender.CACHE.layout=org.apache.log4j.PatternLayout
log4j.appender.CACHE.layout.ConversionPattern=[%5p] [%t %d{hh:mm:ss}] (%F:%M:%L) %m%n

我确定记录器定义正确,因为当additivity=false ,日志未按预期显示在控制台中。 log4j.logger.myClass = INFO, CACHE, console时, log4j.logger.myClass = INFO, CACHE, console添加log4j.logger.myClass = INFO, CACHE, console ,日志将再次显示在控制台中。 因此记录器声明似乎很好。 那么为什么它们没有显示在日志文件中呢?

我正在使用org.apache.log4j.Logger.getLogger(myClass.class).info('msg')语法来使用记录器。 org.apache.log4j.Logger.getLogger("classPath.myClass").info('msg')也不起作用。

当尝试log4j.rootLogger=INFO,console,CACHE时,文件中也没有任何内容。

记录器名称指定错误。 请如下更改

#MyLogger
log4j.logger.MyClass = INFO, CACHE

代替

#MyLogger
log4j.logger.myClass = INFO, CACHE

MyClass被错误地表示为myClass 您还可以按以下方式进行记录器实例化

Logger.getLogger("MyClass").info('msg');

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM