<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>