簡體   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