簡體   English   中英

Log4j未登錄文件

[英]Log4j is not logging into file

我有以下log4j配置:

# Root logger option
log4j.rootLogger=file, stdout

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.Threshold=WARN
log4j.appender.file.File=logs/log.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.Append=true
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Threshold=INFO
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} %-5p %c{1}:%L - %m%n

登錄到stdout可以正常工作,但是沒有任何內容登錄到我的文件中。 該文件有明確的輸出,但是什么也沒有發生。

他為什么不登錄我的文件?

您可以像這樣更改配置文件。

# Root logger option
log4j.rootLogger= ALL,file, stdout

log4j.appender.stdout.Threshold = INFO更改級別,就像所有其打印所有級別的日志一樣,從TRACE到FATAL

原因之一可能是標准輸出附加程序(INFO)的閾值低於文件附加程序(WARN)的閾值。 因此,如果僅記錄了INFO消息,則您只會在標准輸出中看到它們,而在文件中看不到它們。

這取決於您的運行方式。 這只是普通的Java程序嗎? 例如,如果嘗試在容器(例如Karaf)中運行它,則有時它們可​​以設置特殊的日志目標。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM