It turns out that in the latest vesion of log4j (1.2.17), two DLL's were
included:

- NTEventLogAppender.dll
- NTEventLogAppender.amd64.dll

If I put both of them in Karaf's lib folder it seems to work in both
Windows XP and Windows 7. I haven't seen any documentation regarding this
but I'll try this for now.

/Bengt

2012/6/28 Bengt Rodehav <[email protected]>

> Just verified that our previous custom Karaf distribution (which is based
> on Karaf 2.2.5) has the same problem on Windows 7. This is then clearly not
> an issue with Karaf 2.2.8.
>
> Still worth solving though...
>
> /Bengt
>
> 2012/6/28 Jean-Baptiste Onofré <[email protected]>
>
>> Good point Bengt, you are certainly right.
>>
>> Regards
>> JB
>>
>>
>> On 06/28/2012 01:20 PM, Bengt Rodehav wrote:
>>
>>> Hello JB,
>>>
>>> Just struck me that I'v recently changed to a computer running Windows 7
>>> (used to run on Windows XP). When I install Karaf on Windows XP it works
>>> but when I install the same distribution on Windows 7 it doesn't work.
>>> My guess is that is has to do with the NTEventLogAppender.dll. Either it
>>> does not support Windows 7 or it has to be located somewhere else than
>>> in Karaf's lib folder.
>>>
>>> I would guess that if the loading of NTEventLogAppender.dll fails then
>>> the loading of the class org.apache.log4j.nt.__**NTEventLogAppender will
>>>
>>> also fail - thus the NoClassDefFoundError.
>>>
>>> /Bengt
>>>
>>> 2012/6/28 Jean-Baptiste Onofré <[email protected] <mailto:[email protected]
>>> >>
>>>
>>>
>>>    Hi Bengt,
>>>
>>>    It looks weird, but sounds like classloading change issue.
>>>
>>>    I gonna try to reproduce and keep you posted.
>>>
>>>    Regards
>>>    JB
>>>
>>>
>>>    On 06/28/2012 11:22 AM, Bengt Rodehav wrote:
>>>
>>>        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
>>>
>>>
>>>
>>>    --
>>>    Jean-Baptiste Onofré
>>>    [email protected] <mailto:[email protected]>
>>>
>>>    http://blog.nanthrax.net
>>>    Talend - http://www.talend.com
>>>
>>>
>>>
>>>
>> --
>> Jean-Baptiste Onofré
>> [email protected]
>> http://blog.nanthrax.net
>> Talend - http://www.talend.com
>>
>>
>>
>

Reply via email to