<font size=2 face="sans-serif">Hi all,</font><br><font size=2 face="sans-serif">I'm switching my first java desktop
application from log4j to logback, mainly because we neede a reliable DailyRollingFileAppender,
and we were told the log4j implementation is not.</font><br><font size=2 face="sans-serif">So far all ok, we simply changed the
Logger declaration and all worked well.</font><br><font size=2 face="sans-serif">The problem is our custom TextAreaAppender
we are currently using to log the events to a text area in the application.
The log4j implementation is very simple:</font><br><br><font size=2 face="sans-serif">public class TextAreaAppender extends
WriterAppender {</font><br><br><font size=2 face="sans-serif"> static private JTextArea
jTextArea = null;</font><br><font size=2 face="sans-serif"> public static void setTextArea(JTextArea
jTextArea) {</font><br><font size=2 face="sans-serif"> TextAreaAppender.jTextArea
= jTextArea;</font><br><font size=2 face="sans-serif"> }</font><br><br><font size=2 face="sans-serif"> /**</font><br><font size=2 face="sans-serif"> * Format and then
append the loggingEvent to the stored JTextArea.</font><br><font size=2 face="sans-serif"> */</font><br><font size=2 face="sans-serif"> public void append(LoggingEvent
loggingEvent) {</font><br><font size=2 face="sans-serif"> if (layout
!= null) {</font><br><font size=2 face="sans-serif">
final String message = layout.format(loggingEvent);</font><br><font size=2 face="sans-serif">
StringBuilder sb = new StringBuilder();</font><br><font size=2 face="sans-serif">
if (loggingEvent.getThrowableInformation() != null) {</font><br><font size=2 face="sans-serif">
String[] stackTrace = loggingEvent.getThrowableStrRep();</font><br><font size=2 face="sans-serif">
for (String s : stackTrace) {</font><br><font size=2 face="sans-serif">
sb.append(s);</font><br><font size=2 face="sans-serif">
sb.append(Layout.LINE_SEP);</font><br><font size=2 face="sans-serif">
}</font><br><font size=2 face="sans-serif">
}</font><br><font size=2 face="sans-serif">
final String stackTrace = sb.toString();</font><br><br><font size=2 face="sans-serif">
SwingUtilities.invokeLater(new Runnable() {</font><br><font size=2 face="sans-serif">
public void run() {</font><br><font size=2 face="sans-serif">
if (jTextArea != null) {</font><br><font size=2 face="sans-serif">
jTextArea.append(message);</font><br><font size=2 face="sans-serif">
if (!stackTrace.isEmpty()) {</font><br><font size=2 face="sans-serif">
jTextArea.append(stackTrace);</font><br><font size=2 face="sans-serif">
}</font><br><font size=2 face="sans-serif">
}</font><br><font size=2 face="sans-serif">
}</font><br><font size=2 face="sans-serif">
});</font><br><font size=2 face="sans-serif"> }</font><br><font size=2 face="sans-serif"> }</font><br><font size=2 face="sans-serif">}</font><br><br><font size=2 face="sans-serif">I worked a couple of day but did not
manage to get a logback version of this appender to work. Do you have any
sample code available?</font><br><br><font size=2 face="sans-serif">thanks in advance</font><br><font size=2 face="sans-serif">Maurizio</font><p><BR>
Questa e-mail ed i suoi allegati sono ad uso esclusivo di coloro ai quali è indirizzata e potrebbe contenere informazioni riservate, la cui diffusione, copia e/o distribuzione è proibita. Qualora riceveste questo messaggio per errore, scusandoci per l'accaduto, Vi preghiamo di avvertirci immediatamente, distruggendo quanto ricevuto. <BR>