You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by bu...@apache.org on 2003/09/17 20:36:40 UTC

DO NOT REPLY [Bug 23221] New: - SMTPAppender and NTEventLogAppender need newlines in throwable printouts

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23221>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23221

SMTPAppender and NTEventLogAppender need newlines in throwable printouts

           Summary: SMTPAppender and NTEventLogAppender need newlines in
                    throwable printouts
           Product: Log4j
           Version: 1.2
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Appender
        AssignedTo: log4j-dev@jakarta.apache.org
        ReportedBy: jmm@sublogic.com


WriterAppender and TelnetAppender both do the right thing in their subAppend 
methods if the layout ignores throwable - they write/append the lines with line 
separators.  Unfortunately, SMTPAppender and NTEventLogAppender do not, leaving 
their stack traces (I'm using SMTPAppender) a jumbled mess that's very 
difficult to deal with.

The fix is just adding a couple of append's of Layout.LINE_SEP like the other 2 
appenders already do, I'll go ahead and attach a patch as well although it's 
likely just as easy to type in the lines than apply the patch

/cygdrive/c/jakarta-log4j-1.2.8/src/java/org/apache/log4j> grep -A8 -ir 
layout.ignoresThrowable .
./net/SMTPAppender.java:        if(layout.ignoresThrowable()) {
./net/SMTPAppender.java-          String[] s = event.getThrowableStrRep();
./net/SMTPAppender.java-          if (s != null) {
./net/SMTPAppender.java-            for(int j = 0; j < s.length; j++) {
./net/SMTPAppender.java-              sbuf.append(s[j]);
./net/SMTPAppender.java-            }
./net/SMTPAppender.java-          }
./net/SMTPAppender.java-        }
./net/SMTPAppender.java-      }
--
./net/TelnetAppender.java:    if(layout.ignoresThrowable()) {
./net/TelnetAppender.java-      String[] s = event.getThrowableStrRep();
./net/TelnetAppender.java-      if (s != null) {
./net/TelnetAppender.java-      int len = s.length;
./net/TelnetAppender.java-      for(int i = 0; i < len; i++) {
./net/TelnetAppender.java-        sh.send(s[i]);
./net/TelnetAppender.java-        sh.send(Layout.LINE_SEP);
./net/TelnetAppender.java-      }
./net/TelnetAppender.java-      }
--
./nt/NTEventLogAppender.java:    if(layout.ignoresThrowable()) {
./nt/NTEventLogAppender.java-      String[] s = event.getThrowableStrRep();
./nt/NTEventLogAppender.java-      if (s != null) {
./nt/NTEventLogAppender.java-   int len = s.length;
./nt/NTEventLogAppender.java-   for(int i = 0; i < len; i++) {
./nt/NTEventLogAppender.java-     sbuf.append(s[i]);
./nt/NTEventLogAppender.java-   }
./nt/NTEventLogAppender.java-      }
./nt/NTEventLogAppender.java-    }
--
./WriterAppender.java:    if(layout.ignoresThrowable()) {
./WriterAppender.java-      String[] s = event.getThrowableStrRep();
./WriterAppender.java-      if (s != null) {
./WriterAppender.java-  int len = s.length;
./WriterAppender.java-  for(int i = 0; i < len; i++) {
./WriterAppender.java-    this.qw.write(s[i]);
./WriterAppender.java-    this.qw.write(Layout.LINE_SEP);
./WriterAppender.java-  }
./WriterAppender.java-      }

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: log4j-dev-help@jakarta.apache.org