I'm currently updating our applications from using Karaf 2.2.5 to Karaf
2.2.8 and have problems initializing the log system. I use
NTEventLogAppender in my org.ops4j.pax.logging.cfg, like this:

*log4j.appender.nteventlog=org.apache.log4j.nt.NTEventLogAppender*
*log4j.appender.nteventlog.source=${nteventlog.source}*
*log4j.appender.nteventlog.layout=org.apache.log4j.PatternLayout*
*log4j.appender.nteventlog.layout.ConversionPattern=Time:
%d{ISO8601}%n%nSeverity: %p%n%nThread: %t%n%n%m%n*
*log4j.appender.nteventlog.threshold=DEBUG*

It used to work fine but now I get this:

*2012-06-28 10:12:36,259 | ERROR | s4j.pax.logging) | configadmin
           | ?                                   ? | Unexpected problem
executing task*
*java.lang.NoClassDefFoundError: Could not initialize class
org.apache.log4j.nt.NTEventLogAppender*
* at java.lang.Class.forName0(Native Method)[:1.6.0_32]*
* at java.lang.Class.forName(Class.java:169)[:1.6.0_32]*
* at
org.apache.log4j.OsgiThrowableRenderer.findClass(OsgiThrowableRenderer.java:224)[3:org.ops4j.pax.logging.pax-logging-service:1.6.7]
*
* at
org.apache.log4j.OsgiThrowableRenderer.formatElement(OsgiThrowableRenderer.java:134)[3:org.ops4j.pax.logging.pax-logging-service:1.6.7]
*
* at
org.apache.log4j.OsgiThrowableRenderer.doRender(OsgiThrowableRenderer.java:105)[3:org.ops4j.pax.logging.pax-logging-service:1.6.7]
*
* at
org.apache.log4j.OsgiThrowableRenderer.doRender(OsgiThrowableRenderer.java:52)[3:org.ops4j.pax.logging.pax-logging-service:1.6.7]
*
* at
org.apache.log4j.spi.ThrowableInformation.getThrowableStrRep(ThrowableInformation.java:89)[3:org.ops4j.pax.logging.pax-logging-service:1.6.7]
*
* at
org.apache.log4j.spi.LoggingEvent.getThrowableStrRep(LoggingEvent.java:413)[3:org.ops4j.pax.logging.pax-logging-service:1.6.7]
*
* at
org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:313)[3:org.ops4j.pax.logging.pax-logging-service:1.6.7]
*
* at
org.apache.log4j.WriterAppender.append(WriterAppender.java:162)[3:org.ops4j.pax.logging.pax-logging-service:1.6.7]
*
* at
org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:251)[3:org.ops4j.pax.logging.pax-logging-service:1.6.7]
*
* at
org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:66)[3:org.ops4j.pax.logging.pax-logging-service:1.6.7]
*
* at
org.apache.log4j.Category.callAppenders(Category.java:193)[3:org.ops4j.pax.logging.pax-logging-service:1.6.7]
*
* at
org.apache.log4j.Category.forcedLog(Category.java:365)[3:org.ops4j.pax.logging.pax-logging-service:1.6.7]
*
* at
org.apache.log4j.Category.log(Category.java:772)[3:org.ops4j.pax.logging.pax-logging-service:1.6.7]
*
* at
org.ops4j.pax.logging.service.internal.PaxLoggerImpl.error(PaxLoggerImpl.java:159)[3:org.ops4j.pax.logging.pax-logging-service:1.6.7]
*
* at
org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.log(PaxLoggingServiceImpl.java:148)[3:org.ops4j.pax.logging.pax-logging-service:1.6.7]
*
* at
org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.access$000(PaxLoggingServiceImpl.java:45)[3:org.ops4j.pax.logging.pax-logging-service:1.6.7]
*
* at
org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.log(PaxLoggingServiceImpl.java:322)[3:org.ops4j.pax.logging.pax-logging-service:1.6.7]
*
* at
org.apache.felix.cm.impl.ConfigurationManager.log(ConfigurationManager.java:915)[5:org.apache.felix.configadmin:1.2.8]
*
* at
org.apache.felix.cm.impl.ConfigurationManager.handleCallBackError(ConfigurationManager.java:1028)[5:org.apache.felix.configadmin:1.2.8]
*
* at
org.apache.felix.cm.impl.ConfigurationManager$UpdateConfiguration.run(ConfigurationManager.java:1495)[5:org.apache.felix.configadmin:1.2.8]
*
* at
org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:104)[5:org.apache.felix.configadmin:1.2.8]
*
* at java.lang.Thread.run(Thread.java:662)[:1.6.0_32]*

For some reason the class "org.apache.log4j.nt.NTEventLogAppender". Looking
at the stack trace it seems like the handling of the  configuration is done
by the pax-logging-service which also has this class in it's own bundle.
The NTEventLogAppender.dll is also required and is located in Karaf's "lib"
directory (as it was in the past).

Can someone shed some light on this? I'm not sure if it's a Karaf or
Pax-logging issue (or simply a mistake I've made)?

/Bengt

Reply via email to