簡體   English   中英

log4j失敗-無法刷新Servlet中的編寫器(java.io.IOException:錯誤的文件描述符)

[英]log4j failure - Failed to flush writer in servlet (java.io.IOException: Bad file descriptor)

在Servlet環境中使用了幾個小時后,Log4J通常對我們來說是失敗的(tomcat 7.0.26在帶有Java 1.6u31的CentOS 5.5上運行)。 發生此錯誤后,除非重新啟動tomcat,否則不會進行進一步的日志記錄。 另一個非常奇怪的事情是,有時日志記錄請求會沖刷到已提供服務的jsps中。 將有大約10行左右的日志記錄,然后是其下方的html頁面。 我們正在使用最新的log4j jar。

這些日志來自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 org.apache.log4j.helpers.CountingQuietWriter@1e7abbd
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)

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

他們甚至還有一個不錯的轉換器,可以將log4j.properties文件轉換為等效的logback,因此切換起來非常容易。

暫無
暫無

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

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