[英]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.