
Any help would be greatly appreciated since I want my company to change over from log4j to slf4j and logback. However with this error, I won't be able to change over to logback only slf4j. I searched the archives and found no bug or solution for this error: LOGBACK: No context given for ch.qos.logback.core.pattern.parser.Compiler@4a65e0 15:10:23.205 [main] INFO chapter7.SimpleMDC - Check enclosed. %PARSER_ERROR_X %PARSER_ERROR_X - %PARSER_ERROR_m%PARSER_ERROR_n15:10:23.220 [main] DEBUG chapter7.SimpleMDC - The most beautiful two words in English. %PARSER_ERROR_X %PARSER_ERROR_X - %PARSER_ERROR_m%PARSER_ERROR_n15:10:23.220 [main] INFO chapter7.SimpleMDC - I am not a crook. %PARSER_ERROR_X %PARSER_ERROR_X - %PARSER_ERROR_m%PARSER_ERROR_n15:10:23.220 [main] INFO chapter7.SimpleMDC - Attributed to the former US president. 17 Nov 1973. %PARSER_ERROR_X %PARSER_ERROR_X - %PARSER_ERROR_m%PARSER_ERROR_n I'm using the following: Windows XP JDK 1.6 I created a directory named logback. I put the following jars in it: logback-core-0.9.9.jar logback-classic-0.9.9.jar logback-examples-0.9.9.jar slf4j-api-1.5.0.jar (I also tried slf4j-api-1.4.3.jar with same results) I created a bat file named SimpleMDC.bat. It contains the following: java -classpath "slf4j-api-1.5.0.jar;logback-core-0.9.9.jar;logback-classic-0.9.9.jar;lo gback-examples-0.9.9.jar;" chapter7.SimpleMDC I opened a command prompt and ran the bat file with the following output: C:\logback>SimpleMDC C:\logback>java -classpath "slf4j-api-1.5.0.jar;logback-core-0.9.9.jar;logback-classic-0.9.9.jar;lo gback-examples-0.9.9.jar;" chapter7.SimpleMDC LOGBACK: No context given for ch.qos.logback.core.pattern.parser.Compiler@4a65e0 15:10:23.205 [main] INFO chapter7.SimpleMDC - Check enclosed. %PARSER_ERROR_X %PARSER_ERROR_X - %PARSER_ERROR_m%PARSER_ERROR_n15:10:23.220 [main] DEBUG chapter7.SimpleMDC - The most beautiful two words in English. %PARSER_ERROR_X %PARSER_ERROR_X - %PARSER_ERROR_m%PARSER_ERROR_n15:10:23.220 [main] INFO chapter7.SimpleMDC - I am not a crook. %PARSER_ERROR_X %PARSER_ERROR_X - %PARSER_ERROR_m%PARSER_ERROR_n15:10:23.220 [main] INFO chapter7.SimpleMDC - Attributed to the former US president. 17 Nov 1973. %PARSER_ERROR_X %PARSER_ERROR_X - %PARSER_ERROR_m%PARSER_ERROR_n It might be of interest that whenever I used 0.8.1, 0.9.1, 0.9.2, 0.9.3, 0.9.4, 0.9.5, 0.9.6 and 0.9.7 core and classic jars I got the following error when running the SimpleMDC code in a Maven 2 project using Eclipse 3.3 I created: SLF4J: Failed to load class "org.slf4j.impl.StaticMDCBinder". SLF4J: See http://www.slf4j.org/codes.html#no_static_mdc_binder for further details. Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/impl/StaticMDCBinder at org.slf4j.MDC.<clinit>(MDC.java:69) at com.vurv.logging.MDCLogging.main(MDCLogging.java:15) However, whenever I used 0.9.8 and 0.9.9 core and classic jars I got the same parser_error as listed above. Also the Ch# 7 example in the docs is missing this line of code: import ch.qos.logback.classic.spi.LoggingEvent; It is in the SimpleMDC code in the examples jar though. I also took this same project and copied it. Then I changed it over to use slf and log4j. I changed the logback code to log4j like this: Replace this code: // Configure logback PatternLayout layout = new PatternLayout(); layout.setPattern("%X{first} %X{last} - %m%n"); layout.start(); ConsoleAppender<LoggingEvent> appender = new ConsoleAppender<LoggingEvent>(); appender.setLayout(layout); appender.start(); // cast root logger to c.q.logback.classic.Logger so that we can attach an // appender to it ch.qos.logback.classic.Logger root = (ch.qos.logback.classic.Logger) LoggerFactory.getLogger("root"); root.addAppender(appender); With this code: PatternLayout layout = new PatternLayout(); layout.setConversionPattern("%X{first} %X{last} - %m%n"); ConsoleAppender appender = new ConsoleAppender(layout); BasicConfigurator.configure(appender); The rest of the code is identical. This produced the correct output with slf4j and log4j. Dorothy Parker - Check enclosed. Dorothy Parker - The most beautiful two words in English. Richard Nixon - I am not a crook. Richard Nixon - Attributed to the former US president. 17 Nov 1973. Thanks, Daniel