2012-03-07 70 views
1

在我們的servlet環境中使用幾個小時後,Log4J失敗了(在CentOS 5.5上運行的Tomcat 7.0.26與Java 1.6u31)。在這個錯誤發生之後,直到tomcat重新啓動纔會發生進一步的日誌記錄。另一個非常奇怪的事情是,有時記錄請求會刷新到jsps中。將會有大約10行左右的日誌記錄,然後是它下面的html頁面。我們正在使用最新的log4j jar。log4j失敗 - 在servlet中刷新寫入器失敗(java.io.IOException:錯誤的文件描述符)

這些日誌來自catalina.out。我們的應用程序特定日誌就停止

log4j:ERROR Failed to flush writer, 
java.io.IOException: Bad file descriptor 
     at java.io.FileOutputStream.writeBytes(Native Method) 
     at java.io.FileOutputStream.write(Unknown Source) 
     at sun.nio.cs.StreamEncoder.writeBytes(Unknown Source) 
     at sun.nio.cs.StreamEncoder.implFlushBuffer(Unknown Source) 
     at sun.nio.cs.StreamEncoder.implFlush(Unknown Source) 
     at sun.nio.cs.StreamEncoder.flush(Unknown Source) 
     at java.io.OutputStreamWriter.flush(Unknown Source) 
     at org.apache.log4j.helpers.QuietWriter.flush(QuietWriter.java:59) 
     at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:324) 
     at org.apache.log4j.RollingFileAppender.subAppend(RollingFileAppender.java:276) 
     at org.apache.log4j.WriterAppender.append(WriterAppender.java:162) 
     at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:251) 
     at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:66) 
     at org.apache.log4j.Category.callAppenders(Category.java:206) 
     at org.apache.log4j.Category.forcedLog(Category.java:391) 
     at org.apache.log4j.Category.info(Category.java:666) 
     ... 

log4j:ERROR Could not close [email protected] 
java.io.IOException: Bad file descriptor 
     at java.io.FileOutputStream.close0(Native Method) 
     at java.io.FileOutputStream.close(Unknown Source) 
     at sun.nio.cs.StreamEncoder.implClose(Unknown Source) 
     at sun.nio.cs.StreamEncoder.close(Unknown Source) 
     at java.io.OutputStreamWriter.close(Unknown Source) 
     at java.io.FilterWriter.close(Unknown Source) 
+0

只是一個猜測......磁盤上是否有剩餘空間? – 2012-03-07 18:30:44

+0

是的,有很多磁盤空間。 – Josh 2012-03-07 18:33:36

+0

這是一個基於Unix的操作系統嗎? – Sean 2012-03-07 20:30:04

回答

0

我不知道我們問題的根本原因是什麼。我從log4j切換到logback,從此沒有任何問題。

他們甚至有一個不錯的converter將log4j.properties文件轉換爲他們的logback等價物,所以它很容易切換。

相關問題