There are a couple ways:

1) Use StatusPrinter.printInCaseOfErrorsOrWarnings(loggerContext)

OR

2) Load hard-coded string of configuration XML w/configuration.debug set to 'true':

static final String LOGBACK_XML = 
"<configuration debug='true'>" + 
"  <appender name='FILE' class='ch.qos.logback.core.RollingFileAppender'>" +
"    <file>foo.log</file>" +
"    <append>true</append>" +
"    <encoder>" +
"      <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>" +
"    </encoder>" +
"  </appender>" +
"  <root level='INFO'>" +
"    <appender-ref ref='FILE' />" +
"  </root>" +
"</configuration>"
;
static public void configLogback() {
LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
                try {
               JoranConfigurator configurator = new JoranConfigurator();
               configurator.setContext(lc);
               lc.reset();
            
               configurator.doConfigure(new ByteArrayInputStream(LOGBACK_XML.getBytes()));
           } catch (JoranException je) {
               je.printStackTrace();
           }

           // you can also print the errors/warning explicitly (instead of debug='true' in xml)
           //StatusPrinter.printInCaseOfErrorsOrWarnings(lc);
}


On Tue, Dec 13, 2011 at 6:20 PM, Jack Vinijtrongjit <juminoz@hotmail.com> wrote:
I ended up accessing BasicStatusManager directly to get the message out so I can at least see what's going on. Then I was able to figure out that some required configuration wasn't set for RollingPolicy object.

Please let me know if there is a way to make BasicStatusManager cough up all log messages for LogBack. Otherwise, I guess I just have to do it the way I'm doing now when things are not working.

Thanks,
Jack