On Fri, Jul 6, 2012 at 4:02 AM, Martinus Martinus <martinus787@gmail.com> wrote:
Hi,

What is the equivalent programmatical java code for below logback.xml configuration :

<configuration>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!-- encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder
            by default -->
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="SYSLOG" class="ch.qos.logback.classic.net.SyslogAppender">
        <syslogHost>myhost</syslogHost>
        <facility>USER</facility>
        <suffixPattern>[%thread] %logger %msg</suffixPattern>
    </appender>

    <root level="debug">
        <appender-ref ref="SYSLOG"/>
        <appender-ref ref="STDOUT"/>
    </root>
</configuration>
Thanks. 

Hi Martinus,

This doesn't directly answer your question, but it provides a solution if your goal is to configure logback from code instead of logback.xml... You can load the configuration XML into a string and feed that to a JoranConfigurator, as in the example below. 

Btw, please refrain from posting the same question repeatedly. :)

Hope that helps,
Tony

static private final String LOGBACK_XML =
"<configuration>" +
"                                                                                               " +
"    <appender name='STDOUT' class='ch.qos.logback.core.ConsoleAppender'>                       " +
"        <!-- encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder" +
"            by default -->                                                                     " +
"        <encoder>                                                                              " +
"            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>            " +
"        </encoder>                                                                             " +
"    </appender>                                                                                " +
"                                                                                               " +
"    <appender name='SYSLOG' class='ch.qos.logback.classic.net.SyslogAppender'>                 " +
"        <syslogHost>myhost</syslogHost>                                                        " +
"        <facility>USER</facility>                                                              " +
"        <suffixPattern>[%thread] %logger %msg</suffixPattern>                                  " +
"    </appender>                                                                                " +
"                                                                                               " +
"    <root level='debug'>                                                                       " +
"        <appender-ref ref='SYSLOG'/>                                                           " +
"        <appender-ref ref='STDOUT'/>                                                           " +
"    </root>                                                                                    " +
"</configuration>                                                                               " 
;
    static private void configureLogback() {
        BufferedInputStream xmlStream = new BufferedInputStream(new ByteArrayInputStream(LOGBACK_XML.getBytes()));
        
        LoggerContext context = (LoggerContext)LoggerFactory.getILoggerFactory();
        context.reset(); // override default config
        JoranConfigurator joran = new JoranConfigurator();
        joran.setContext(context);
        try {
            joran.doConfigure(xmlStream);
            StatusPrinter.printInCaseOfErrorsOrWarnings(context);
        } catch (JoranException e) {
            e.printStackTrace();
        }
    }