2012-09-25 35 views
5

Bu, stackoverflow sitesinde gerçek bir stackoverflow istisnasıdır! Daha önce hiç kimsenin bunu görüp görmediğini merak ettim. log4j stackoverflow

java.lang.StackOverflowError 
at java.lang.Exception.<init>(Exception.java:41) 
at java.io.IOException.<init>(IOException.java:41) 
at java.io.FileOutputStream.writeBytes(Native Method) 
at java.io.FileOutputStream.write(FileOutputStream.java:260) 
at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:202) 
at sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:263) 
at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:106) 
at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:116) 
at java.io.OutputStreamWriter.write(OutputStreamWriter.java:203) 
at java.io.Writer.write(Writer.java:140) 
at org.apache.log4j.helpers.CountingQuietWriter.write(CountingQuietWriter.java:44) 
at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:301) 
at org.apache.log4j.contribs.DailyRollingFileAppender.subAppend(DailyRollingFileAppender.java:395) 
at org.apache.log4j.WriterAppender.append(WriterAppender.java:159) 
at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:230) 
at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:65) 
at org.apache.log4j.Category.callAppenders(Category.java:203) 
at org.apache.log4j.Category.forcedLog(Category.java:388) 
at org.apache.log4j.Category.log(Category.java:835) 
at org.apache.log4j.contribs.LoggingOutputStream.flush(LoggingOutputStream.java:168) 
at java.io.PrintStream.write(PrintStream.java:432) 
at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:202) 
at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:272) 
at sun.nio.cs.StreamEncoder.flushBuffer(StreamEncoder.java:85) 
at java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:168) 
at java.io.PrintStream.write(PrintStream.java:477) 
at java.io.PrintStream.print(PrintStream.java:619) 
at java.io.PrintStream.println(PrintStream.java:756) 
at org.apache.log4j.helpers.LogLog.error(LogLog.java:142) 
at org.apache.log4j.helpers.OnlyOnceErrorHandler.error(OnlyOnceErrorHandler.java:77) 
at org.apache.log4j.helpers.OnlyOnceErrorHandler.error(OnlyOnceErrorHandler.java:67) 
at org.apache.log4j.helpers.CountingQuietWriter.write(CountingQuietWriter.java:48) 
at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:301) 
at org.apache.log4j.contribs.DailyRollingFileAppender.subAppend(DailyRollingFileAppender.java:395) 
at org.apache.log4j.WriterAppender.append(WriterAppender.java:159) 
at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:230) 
at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:65) 
at org.apache.log4j.Category.callAppenders(Category.java:203) 
at org.apache.log4j.Category.forcedLog(Category.java:388) 
at org.apache.log4j.Category.log(Category.java:835) 
at org.apache.log4j.contribs.LoggingOutputStream.flush(LoggingOutputStream.java:168) 
at java.io.PrintStream.write(PrintStream.java:432) 
at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:202) 
at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:272) 
at sun.nio.cs.StreamEncoder.flushBuffer(StreamEncoder.java:85) 
at java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:168) 
at java.io.PrintStream.write(PrintStream.java:477) 
at java.io.PrintStream.print(PrintStream.java:619) 
at java.io.PrintStream.println(PrintStream.java:756) 
at org.apache.log4j.helpers.LogLog.error(LogLog.java:142) 
at org.apache.log4j.helpers.OnlyOnceErrorHandler.error(OnlyOnceErrorHandler.java:77) 
at org.apache.log4j.helpers.OnlyOnceErrorHandler.error(OnlyOnceErrorHandler.java:67) 
at org.apache.log4j.helpers.CountingQuietWriter.write(CountingQuietWriter.java:48) 
at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:301) 
at org.apache.log4j.contribs.DailyRollingFileAppender.subAppend(DailyRollingFileAppender.java:395) 
at org.apache.log4j.WriterAppender.append(WriterAppender.java:159) 
at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:230) 
at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:65) 
at org.apache.log4j.Category.callAppenders(Category.java:203) 
at org.apache.log4j.Category.forcedLog(Category.java:388) 
at org.apache.log4j.Category.log(Category.java:835) 
at org.apache.log4j.contribs.LoggingOutputStream.flush(LoggingOutputStream.java:168) 
at java.io.PrintStream.write(PrintStream.java:432) 
at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:202) 
at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:272) 
at sun.nio.cs.StreamEncoder.flushBuffer(StreamEncoder.java:85) 
at java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:168) 
at java.io.PrintStream.write(PrintStream.java:477) 

... (tekrarlanan yaklaşık 10 kat)

at java.io.PrintStream.write(PrintStream.java:432) 
at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:202) 
at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:272) 
at sun.nio.cs.StreamEncoder.flushBuffer(StreamEncoder.java:85) 
at java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:168) 
at java.io.PrintStream.write(PrintStream.java:477) 
at java.io.PrintStream.print(PrintStream.java:619) 
at java.io.PrintStream.println(PrintStream.java:756) 
at org.apache.log4j.helpers.LogLog.error(LogLog.java:142) 
at org.apache.log4j.helpers.OnlyOnceErrorHandler.error(OnlyOnceErrorHandler.java:77) 
at org.apache.log4j.helpers.OnlyOnceErrorHandler.error(OnlyOnceErrorHandler.java:67) 
at org.apache.log4j.helpers.CountingQuietWriter.write(CountingQuietWriter.java:48) 
at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:301) 
at org.apache.log4j.contribs.DailyRollingFileAppender.subAppend(DailyRollingFileAppender.java:395) 
at org.apache.log4j.WriterAppender.append(WriterAppender.java:159) 
at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:230) 
at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:65) 

java.lang.StackOverflowError

+0

Ne tür bir log4j yapılandırması kullanıyorsunuz? – DNA

cevap

5

buradan log4j yapılandırma dosyaları ve kod eksik. Böyle System.err değiştirilmesi

Ama

1) LoggingOutputStream kodunda bir yerde kullanıldığını ilk tahminim olduğunu:

System.setErr(new PrintStream(new LoggingOutputStream(Category.getRoot(), Priority.WARN), true)); 

2) log4j düzgün yapılandırılmış ve System.err iç hatayı yazdırmaya çalışır değildir LogLog.

Bu, yığın taşmasına neden olan dairesel günlük aramaları oluşturur.

1) 'den gelen System.err durdurucuyu kaldırmayı deneyin. Bu, 2) 'deki dahili hatanın yüzeye çıkmasına izin verir.

+1

Çok teşekkürler. Sorunumuzu çözdünüz :-) – RubioRic