2012-03-07 1 views
1

Log4J échoue pour nous généralement après quelques heures d'utilisation dans notre environnement de servlet (tomcat 7.0.26 fonctionnant sous CentOS 5.5 avec Java 1.6u31). Après que cette erreur se produit, aucune autre connexion ne se produit jusqu'à ce que Tomcat soit redémarré. Une autre chose vraiment étrange est que parfois les requêtes de journalisation sont envoyées aux JSP qui sont servies. Il y aura environ 10 lignes de journalisation, puis la page HTML ci-dessous. Nous utilisons le dernier pot log4j.Erreur log4j - Échec du vidage de l'enregistreur dans la servlet (java.io.IOException: mauvais descripteur de fichier)

Ces journaux proviennent de catalina.out. Nos journaux spécifiques à l'application s'arrêtent juste.

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

Juste une supposition ... il reste de l'espace sur le disque? –

+0

Oui, il y a beaucoup d'espace disque. – Josh

+0

S'agit-il d'un système d'exploitation basé sur Unix? – Sean

Répondre

0

Je ne sais pas quelle était la cause sous-jacente de nos problèmes. Je suis passé de log4j à logback et je n'ai eu aucun problème depuis.

Ils ont même un joli converter pour convertir les fichiers log4j.properties en leur équivalent logback, donc c'était assez facile à changer.

Questions connexes