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. :)
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();
}
}