<style>
/* Changing the layout to use less space for mobiles */
@media screen and (max-device-width: 480px), screen and (-webkit-min-device-pixel-ratio: 2) {
#email-body { min-width: 30em !important; }
#email-page { padding: 8px !important; }
#email-banner { padding: 8px 8px 0 8px !important; }
#email-avatar { margin: 1px 8px 8px 0 !important; padding: 0 !important; }
#email-fields { padding: 0 8px 8px 8px !important; }
#email-gutter { width: 0 !important; }
}
</style>
<div id="email-body">
<table id="email-wrap" align="center" border="0" cellpadding="0" cellspacing="0" style="background-color:#f0f0f0;color:#000000;width:100%;">
<tr valign="top">
<td id="email-page" style="padding:16px !important;">
<table align="center" border="0" cellpadding="0" cellspacing="0" style="background-color:#ffffff;border:1px solid #bbbbbb;color:#000000;width:100%;">
<tr valign="top">
<td bgcolor="#003366" style="background-color:#003366;color:#ffffff;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;line-height:1;"><img src="http://jira.qos.ch/s/en_USet69y6/731/19/_/jira-logo-scaled.png" alt="" style="vertical-align:top;" /></td>
</tr><tr valign="top">
<td id="email-banner" style="padding:32px 32px 0 32px;">
<table align="left" border="0" cellpadding="0" cellspacing="0" width="100%" style="width:100%;">
<tr valign="top">
<td style="color:#505050;font-family:Arial,FreeSans,Helvetica,sans-serif;padding:0;">
<img id="email-avatar" src="http://jira.qos.ch/secure/useravatar?avatarId=10122" alt="" height="48" width="48" border="0" align="left" style="padding:0;margin: 0 16px 16px 0;" />
<div id="email-action" style="padding: 0 0 8px 0;font-size:12px;line-height:18px;">
<a class="user-hover" rel="ingebrigt" id="email_ingebrigt" href="http://jira.qos.ch/secure/ViewProfile.jspa?name=ingebrigt" style="color:#326ca6;">Ingebrigt Berg</a>
commented on <img src="http://jira.qos.ch/images/icons/bug.gif" height="16" width="16" border="0" align="absmiddle" alt="Bug"> <a style='color:#326ca6;text-decoration:none;' href='http://jira.qos.ch/browse/LOGBACK-750'>LOGBACK-750</a>
</div>
<div id="email-summary" style="font-size:16px;line-height:20px;padding:2px 0 16px 0;">
<a style='color:#326ca6;text-decoration:none;' href='http://jira.qos.ch/browse/LOGBACK-750'><strong>syslogappender omits special lines in stacktraces</strong></a>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td id="email-fields" style="padding:0 32px 32px 32px;">
<table border="0" cellpadding="0" cellspacing="0" style="padding:0;text-align:left;width:100%;" width="100%">
<tr valign="top">
<td id="email-gutter" style="width:64px;white-space:nowrap;"></td>
<td>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr valign="top">
<td colspan="2" style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 16px 0;width:100%;">
<div class="comment-block" style="background-color:#edf5ff;border:1px solid #dddddd;color:#000000;padding:12px;">I've coded a fix for this problem, will post on the mailing list and make a pull request. My fix will produce the stack trace below.
<br/>
<br/>
There is a minor problems that I'm not able to solve without a more significant effort/more significant code changes.
<br/>
Syslogappender has a prefix for regular log events, and one for stacktrace lines. These 'special' stacktrace control lines fit neither, they are a 3. category of log lines!
<br/>
<br/>
-Preferably I would want these special lines to use the same prefix as normal events, but the way the SuffixPattern prefixing is coded makes this dificult to achieve without refactoring significantly. The mechanism that does the prefixing (based on SuffixPattern) is central to the Syslogapender, so I didn't touch this.
<br/>
-An alternative choice would be to create a 3d prefix option, a new sibling to SuffixPattern and StackTracePattern. Might put to much of a burden on the casual user to understand yet another option, so I didn't do this
<br/>
-My third option, (which I implemented) was to recycle the StackTracePrefix for these special loglines. This turns out OK (see log example below), but doesn't allow me to make these special log lines stand out (by using a reduced indent). Standing out is kind of the purpose of these special lines, they're used as separators/headers for stacktraces.
<br/>
<br/>
Example log output using a fixed syslogappender.
<br/>
<br/>
( The new lines my fix adds are:
<br/>
vps-wstester-TEST no.vps.exceptions.SystemException: COM_INVALID_CHAR
<br/>
vslvt2-52 vps-wstester-TEST Caused by: java.lang.NullPointerException: null
<br/>
)
<br/>
<br/>
vps-wstester-TEST 18.09.2012 18:36:19.312 [INFO] [n.v.w.t.WSTesterServlet] [XXXXIMB.1347986179274.0]: SystemException caused by nullpointer:
<br/>
vps-wstester-TEST no.vps.exceptions.SystemException: COM_INVALID_CHAR
<br/>
vps-wstester-TEST at no.vps.ws.tester.WSTesterServlet.handleRequest(WSTesterServlet.java:79)
<br/>
vps-wstester-TEST at no.vps.ws.tester.WSTesterServlet.doGet(WSTesterServlet.java:54)
<br/>
vps-wstester-TEST at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
<br/>
vps-wstester-TEST at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
<br/>
vps-wstester-TEST at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1657)
<br/>
vps-wstester-TEST at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1597)
<br/>
vps-wstester-TEST at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:131)
<br/>
vps-wstester-TEST at no.vps.ws.web.filter.MDCFilter.doFilter(MDCFilter.java:50)
<br/>
vps-wstester-TEST at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:188)
<br/>
vps-wstester-TEST at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:116)
<br/>
vps-wstester-TEST at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:77)
<br/>
vps-wstester-TEST at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:908)
<br/>
vps-wstester-TEST at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:934)
<br/>
vps-wstester-TEST at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:502)
<br/>
vps-wstester-TEST at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:179)
<br/>
vps-wstester-TEST at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3935)
<br/>
vps-wstester-TEST at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:276)
<br/>
vps-wstester-TEST at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:931)
<br/>
vps-wstester-TEST at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1592)
<br/>
vps-wstester-TEST at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:186)
<br/>
vps-wstester-TEST at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:452)
<br/>
vps-wstester-TEST at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:511)
<br/>
vps-wstester-TEST at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:305)
<br/>
vps-wstester-TEST at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:276)
<br/>
vps-wstester-TEST at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
<br/>
vps-wstester-TEST at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
<br/>
vps-wstester-TEST at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
<br/>
vps-wstester-TEST at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
<br/>
vps-wstester-TEST at com.ibm.io.async.AsyncChannelFuture$1.run(AsyncChannelFuture.java:205)
<br/>
vps-wstester-TEST at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1604)
<br/>
vslvt2-52 vps-wstester-TEST Caused by: java.lang.NullPointerException: null
<br/>
vps-wstester-TEST at no.vps.ws.tester.WSTesterServlet.handleRequest(WSTesterServlet.java:77)
<br/>
vps-wstester-TEST at no.vps.ws.tester.WSTesterServlet.doGet(WSTesterServlet.java:54)
<br/>
vps-wstester-TEST at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
<br/>
vps-wstester-TEST at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
<br/>
vps-wstester-TEST at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1657)
<br/>
vps-wstester-TEST at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1597)
<br/>
vps-wstester-TEST at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:131)
<br/>
vps-wstester-TEST at no.vps.ws.web.filter.MDCFilter.doFilter(MDCFilter.java:50)
<br/>
vps-wstester-TEST at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:188)
<br/>
vps-wstester-TEST at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:116)
<br/>
vps-wstester-TEST at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:77)
<br/>
vps-wstester-TEST at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:908)
<br/>
vps-wstester-TEST at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:934)
<br/>
vps-wstester-TEST at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:502)
<br/>
vps-wstester-TEST at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:179)
<br/>
vps-wstester-TEST at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3935)
<br/>
vps-wstester-TEST at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:276)
<br/>
vps-wstester-TEST at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:931)
<br/>
vps-wstester-TEST at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1592)
<br/>
vps-wstester-TEST at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:186)
<br/>
vps-wstester-TEST at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:452)
<br/>
vps-wstester-TEST at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:511)
<br/>
vps-wstester-TEST at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:305)
<br/>
vps-wstester-TEST at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:276)
<br/>
vps-wstester-TEST at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
<br/>
vps-wstester-TEST at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
<br/>
vps-wstester-TEST at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
<br/>
vps-wstester-TEST at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
<br/>
vps-wstester-TEST at com.ibm.io.async.AsyncChannelFuture$1.run(AsyncChannelFuture.java:205)
<br/>
vps-wstester-TEST at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1604)
<br/>
<br/>
</div>
<div style="color:#505050;padding:4px 0 0 0;"> </div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td><!-- End #email-page -->
</tr>
<tr valign="top">
<td style="color:#505050;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:10px;line-height:14px;padding: 0 16px 16px 16px;text-align:center;">
This message is automatically generated by JIRA.<br />
If you think it was sent incorrectly, please contact your <a style='color:#326ca6;' href='http://jira.qos.ch/secure/ContactAdministrators!default.jspa'>JIRA administrators</a>.<br />
For more information on JIRA, see: <a style='color:#326ca6;' href='http://www.atlassian.com/software/jira'>http://www.atlassian.com/software/jira</a>
</td>
</tr>
</table><!-- End #email-wrap -->
</div><!-- End #email-body -->