2011-07-01 50 views
1

我配置了Log4j來登錄到一個文件,但它是登錄到stdout。 它創建日誌文件,但它不寫入它,而是寫入標準輸出。在控制檯上輸出Log4j而不是配置文件

這裏是我的配置文件:

log4j.rootCategory=INFO, file, mail 
log4j.appender.file=org.apache.log4j.RollingFileAppender 
log4j.appender.file.File=/path-to/jobs-batch.log 
log4j.appender.file.MaxFileSize=10MB 
log4j.appender.file.MaxBackupIndex=2 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=[jobs-batch] %p [%t] %c{1}.%M(%L) | %m%n 

log4j.logger.org.springframework.jdbc=WARN 

# Configuration for receiving e-mails when ERROR messages occur. 
log4j.appender.mail=org.apache.log4j.net.SMTPAppender 
[email protected] 
[email protected] 
log4j.appender.mail.SMTPHost=mail.xxx.de 
log4j.appender.mail.Threshold=ERROR 
log4j.appender.mail.Subject=Jobs Batch Error 
log4j.appender.mail.layout=org.apache.log4j.PatternLayout 
log4j.appender.mail.layout.ConversionPattern=%d %-5p %c %x - %m%n 

什麼想法?

感謝

+1

你確定這是log4j讀取的配置文件嗎? –

+0

你有權限寫嗎? – ssedano

+0

@Udo:是的,我有 – mmoossen

回答

0

我自己很愚蠢。 我正在使用-Dlog4j.configuration來設置我的文件。 但我也編程配置log4j使用SAME配置文件。

我還是不明白爲什麼它的行爲就像那樣,因爲我只是設置了兩次SAME配置文件。但是,一旦我做到了這一點,它只按預期工作。

1

調整到適合您的需要:

log4j.rootCategory=DEBUG, C  
log4j.appender.C=org.apache.log4j.ConsoleAppender 
log4j.appender.C.layout=org.apache.log4j.PatternLayout 
log4j.appender.C.layout.ConversionPattern=%d{MMddyyyy HH:mm} %-5p %c{1}:%L - %m%n 
log4j.appender.C.Target=System.out 
+0

我想你錯過了這個問題。我不想要控制檯輸出。 – mmoossen

1

檢查事項:

  • 什麼是你的Log4j屬性文件的名稱?缺省值爲log4j.properties,這是Log4j庫在啓動時將查找的內容。
  • 有關Thorbjorn在他的評論中提出的問題,log4j屬性文件位於何處?將其放置在默認包中可確保找到它(默認情況下,Log4j會搜索類路徑)。
  • 可選地在啓動JVM時使用log4j.configuration屬性指定log4j屬性文件的位置。
+0

我在啓動時用一個道具來做。我確定我的文件被使用了 – mmoossen

相關問題