2010-07-05 70 views
7

我使用log4j的在我的Java應用程序,但沒有拋出任何異常一段時間後,它停止記錄log4j的停止記錄到文件,

我log4j的配置如下圖。

log4j.rootLogger=INFO,FILE 
log4j.appender.FILE=com.test.TestFIleAppender 
log4j.appender.FILE.MaxFileSize=20MB 
log4j.appender.FILE.MaxBackUpIndex=200 

我的文件appender包含一些代碼來執行zip操作並指定日誌文件格式和所有。

這是記錄罰款一段時間,但突然停止伐木,也不例外也扔

任何機構可以告訴我什麼可以是問題?

任何機構都知道像這樣的任何log4j相關的問題?

+0

有一個問題在這裏? – 2010-07-05 07:50:37

+0

你確定它是帶有大寫字母I的'TestFIleAppender'嗎?另外,您是否嘗試在INFO級別打印測試消息? – 2010-07-05 07:52:22

+0

是的,信息級別的痕跡很好 – sreejith 2010-07-05 07:53:17

回答

1

很難回答,爲什麼你的記錄停止。

首先檢查硬盤空間是否已滿。

編寫一個測試用例,其中一個線程每秒輪詢一次INFO類型的日誌消息。比你可以檢查這是否是空間或內存問題。

請注意:當程序正在等待某個地方並且沒有線程或動作正在工作時,您將看不到任何日誌消息。請通過調試來檢查代碼行是否在循環中執行(或者您期望看到消息),在此循環中應該顯示日誌消息。

這是我的log4j屬性文件的一個例子。可能是有幫助:

log4j.rootLogger=INFO, stdout, logfile 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d %p (%t) [%c] - %m%n 

log4j.appender.logfile=org.apache.log4j.RollingFileAppender 
log4j.appender.logfile.File=C:/log/client.log 
log4j.appender.logfile.MaxFileSize=5MB 
log4j.appender.logfile.MaxBackupIndex=0 
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout 
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n 
+0

真實的磁盤空間和我的應用程序是好的,基本上我的應用程序是服務器,它能夠處理請求和所有...但跟蹤不打印 – sreejith 2010-07-05 07:57:50

+0

我的log4j文件也是類似的...你知道任何log4j中的已知問題就像這樣 – sreejith 2010-07-05 07:58:53

+0

是他們的一個原因,爲什麼你使用自己的FileAppender? – 2010-07-05 07:59:45

0

你有沒有考慮過的可能性,log4j的仍然是寫入文件,但該文件已經從它的父目錄由您的自定義的appender斷開鏈接?

4

這發生在我身上。工作一天,然後再不工作。我回去後意識到我改變了POM的依賴關係,並做了一些Google搜索。

當我糾正這個問題時,我的日誌記錄返回。我會確保你有以下的文物同步:

<dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>1.7.1</version> 
    </dependency> 

    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-simple</artifactId> 
     <version>1.7.1</version> 
    </dependency> 

    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.17</version> 
    </dependency> 

http://www.slf4j.org/manual.html

0

它發生在我加入沙丁魚庫到我的依賴關係之後。然後,從這裏的答案之一,我將slf4j-log4j12庫添加到依賴關係,並且它開始再次運行。

0

可能是非常罕見的情況,但我曾經遇到過使用Cloner引起的類似問題。克隆啓用log4j日誌記錄的對象後,日誌記錄剛剛停止工作。解決的辦法是從與克隆排除log4j的類:

cloner.dontClone(org.apache.log4j.Logger.class, org.apache.log4j.LogManager.class,)