You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@karaf.apache.org by Bengt Rodehav <be...@rodehav.com> on 2016/07/01 06:55:54 UTC

Re: Log4j NTEventLogAppender in Karaf 4.0.5

OK - I guess I misunderstood this then.

Looking in the POM's I now see that there are dependencies to both log4j
1.2.16 and log4j 2.x.

I wonder then why the NTEventLogAppender can't be used in Karaf 4.0.5. For
a while I thought it might be a java version problem. I now use Java 8
instead of Java 7 like I did before. But even if I run Karaf 4.0.5 using
Java 7 I still get the same problem.

I will try to use Karaf 4.0.5 with Pax-logging 1.8.1 to see if it makes any
difference. What is the best way to accomplish that?

/Bengt

2016-06-30 16:54 GMT+02:00 Achim Nierbeck <bc...@googlemail.com>:

> Hi Bengt,
>
> newer versions of Pax-Logging don't use log4j2 per default so this should
> still work ...
> the underlying impl is still log4j 1 unless someone changed it on a minor
> version update ...
>
> regards, Achim
>
>
> 2016-06-30 16:23 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>
>> Thanks JB,
>>
>> Tried it though and no diffference.
>>
>> When investigating this it seems like newer versions of pax-logging uses
>> log4j2. Unfortunately the NTEventLogAppender is incompatible with log4j2.
>>
>> I've found the project log4jna that seems to target this. Unfortunately I
>> cannot find a released version that supports log4j2.
>>
>> Anyone else encountered this?
>>
>> /Bengt
>>
>> 2016-06-30 14:48 GMT+02:00 Jean-Baptiste Onofré <jb...@nanthrax.net>:
>>
>>> In Karaf 4, the dll should go in lib/ext.
>>>
>>> Regards
>>> JB
>>>
>>> On 06/30/2016 02:16 PM, Bengt Rodehav wrote:
>>>
>>>> I have a feeling that I need to put the NTEventLogAppender.amd4.dll in
>>>> another directory in Karaf 4.0.5 then in Karaf 2.4.1.
>>>>
>>>> I have always put it in the directory %KARAF_HOME%/lib which works for
>>>> Karaf 2.4.1. Where should DLL's be put in Karaf 4.0.5?
>>>>
>>>> /Bengt
>>>>
>>>> 2016-06-29 17:37 GMT+02:00 Bengt Rodehav <bengt@rodehav.com
>>>> <ma...@rodehav.com>>:
>>>>
>>>>
>>>>     I'm trying to upgrade from Karaf 2..1 to 4.0.5 and I run into
>>>>     problems regarding NTEventLogAppender. I get the following on
>>>> startup:
>>>>
>>>>     2016-06-29 17:16:05,354 | ERROR | 4j.pax.logging]) | configadmin
>>>>                       | ?
>>>>          ? | [org.osgi.service.log.LogService,
>>>>     org.knopflerfish.service.log.LogService,
>>>>     org.ops4j.pax.logging.PaxLoggingService,
>>>>     org.osgi.service.cm.ManagedService, id=34,
>>>>     bundle=6/mvn:org.ops4j.pax.logging/pax-logging-service/1.8.5]:
>>>>     Unexpected problem updating configuration org.ops4j.pax.logging
>>>>     java.lang.UnsatisfiedLinkError: no NTEventLogAppender in
>>>>     java.library.path
>>>>              at
>>>>     java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)[:1.8.0_74]
>>>>              at
>>>> java.lang.Runtime.loadLibrary0(Runtime.java:870)[:1.8.0_74]
>>>>              at
>>>> java.lang.System.loadLibrary(System.java:1122)[:1.8.0_74]
>>>>              at
>>>>
>>>> org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:179)
>>>>              at
>>>>     sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>>>>     Method)[:1.8.0_74]
>>>>              at
>>>>
>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)[:1.8.0_74]
>>>>              at
>>>>
>>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)[:1.8.0_74]
>>>>              at
>>>>
>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:423)[:1.8.0_74]
>>>>              at java.lang.Class.newInstance(Class.java:442)[:1.8.0_74]
>>>>              at
>>>>
>>>> org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>              at
>>>>
>>>> org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>              at
>>>>
>>>> org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>              at
>>>>
>>>> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>              at
>>>>
>>>> org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:639)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>              at
>>>>
>>>> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:504)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>              at
>>>>
>>>> org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>              at
>>>>
>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>              at
>>>>
>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>              at
>>>>
>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)[7:org.apache.felix.configadmin:1.8.8]
>>>>              at
>>>>
>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)[7:org.apache.felix.configadmin:1.8.8]
>>>>              at
>>>>
>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)[7:org.apache.felix.configadmin:1.8.8]
>>>>              at
>>>>
>>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.provide(ConfigurationManager.java:1444)[7:org.apache.felix.configadmin:1.8.8]
>>>>              at
>>>>
>>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.run(ConfigurationManager.java:1400)[7:org.apache.felix.configadmin:1.8.8]
>>>>              at
>>>>
>>>> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)[7:org.apache.felix.configadmin:1.8.8]
>>>>              at
>>>>
>>>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)[7:org.apache.felix.configadmin:1.8.8]
>>>>              at java.lang.Thread.run(Thread.java:745)[:1.8.0_74]
>>>>
>>>>     Like I did on Karaf 2.4.1, I have put the
>>>>     file NTEventLogAppender.amd64.dll in the "lib" directory under
>>>>     Karaf. It has the version 1.2.16.1.
>>>>
>>>>     Does anyone know how to get the NTEventLogAppender to work with
>>>>     Karaf 4.0.5?
>>>>
>>>>     /Bengt
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>> --
>>> Jean-Baptiste Onofré
>>> jbonofre@apache.org
>>> http://blog.nanthrax.net
>>> Talend - http://www.talend.com
>>>
>>
>>
>
>
> --
>
> Apache Member
> Apache Karaf <http://karaf.apache.org/> Committer & PMC
> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer &
> Project Lead
> blog <http://notizblog.nierbeck.de/>
> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>
>
> Software Architect / Project Manager / Scrum Master
>
>

Re: Log4j NTEventLogAppender in Karaf 4.0.5

Posted by Bengt Rodehav <be...@rodehav.com>.
OK - thanks for trying.

/Bengt

2016-07-12 11:12 GMT+02:00 Achim Nierbeck <bc...@googlemail.com>:

> Hi Bengt,
>
> sorry been very busy lately. I did give it a try but couldn't find a
> reason why Log4j2 should be used or Pax Logging should be triggered to be
> restarted. There isn't any reason for the pax web bundles to do so ... :/
> sorry didn't get any further on this ..
>
> regards, Achim
>
>
>
>
> 2016-07-11 14:47 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>
>> Did you have a chance to look at this Achim? If there is a problem with
>> the pax-jetty feature it would be nice to have it fixed in Karaf 4.0.6
>> which I understand is in the works.
>>
>> /Bengt
>>
>> 2016-07-07 9:13 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>
>>> OK - thanks Achim,
>>>
>>> /Bengt
>>>
>>> 2016-07-06 22:08 GMT+02:00 Achim Nierbeck <bc...@googlemail.com>:
>>>
>>>> Hi Bengt,
>>>>
>>>> I'll try to find out if one of the bundles in that feature depends on
>>>> log4j2 ... but I'm not aware of such a dependency.
>>>>
>>>> Your suspicion about dynamic loading of DLLs is correct in case of the
>>>> location of the dll is inside of a bundle and does have dependencies to
>>>> another dll. If it's a dll loaded via the root classloader that shouldn't
>>>> be of an issue.
>>>>
>>>> regards, Achim
>>>>
>>>>
>>>> 2016-07-04 16:04 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>>>
>>>>> Another theory: Looking at the stack trace this seems to be triggered
>>>>> by a configuration update. Could the problem be that Pax-logging is trying
>>>>> to load the DLL again and failing since it is already loaded? Perhaps the
>>>>> initial load works but subsequent configuration updates does not?
>>>>>
>>>>> I tried to verify this...
>>>>>
>>>>> After successful start of Karaf (after step 9 in my previous post), I
>>>>> edit org.ops4j.pas.logging.cfg (by changing the root logger between INFO
>>>>> and DEBUG). This causes no error.
>>>>>
>>>>> But after having installed feature pax-jetty (after step 10 in my
>>>>> previous post), every change in org.ops4j.pas.logging.cfg causes the same
>>>>> error to appear (the stack trace included in my previous post).
>>>>>
>>>>> It's as if installing the pax-jetty feature takes gives control of
>>>>> org.ops4j.pas.logging.cfg to someone who cannot load the DLL. I have no
>>>>> idea how this could happen.
>>>>>
>>>>> Anyone else has an idea?
>>>>>
>>>>> /Bengt
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> /Bengt
>>>>>
>>>>> 2016-07-04 15:51 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>>>>
>>>>>> A theory: Could one of the bundles installed by feature pax-jetty be
>>>>>> using log4j 2.x directly without using Pax-logging? If so, would it too try
>>>>>> to read the log4j configuration file? I guess it would fail to load the DLL
>>>>>> since it is probably not compatible with log4j 2.x.
>>>>>>
>>>>>> Could this happen? If so, how can I find out which bundle?
>>>>>>
>>>>>> /Bengt
>>>>>>
>>>>>> 2016-07-04 15:15 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>>>>>
>>>>>>> Back to the Karaf mailing list....
>>>>>>>
>>>>>>> I can actually get this problem on a standard vanilla Karaf 4.0.5.
>>>>>>> It seems to be triggered when installing the feature pax-jetty.
>>>>>>>
>>>>>>> *1. Install standard Karaf 4.0.5*
>>>>>>>
>>>>>>> *2. Replace org.ops4j.pax.logging.cfg with the following:*
>>>>>>>
>>>>>>> log4j.rootLogger=INFO, stdout
>>>>>>>
>>>>>>> # CONSOLE appender
>>>>>>> log4j.appender.stdout=org.apache.log4j.ConsoleAppender
>>>>>>> log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
>>>>>>> log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} | %-5.5p
>>>>>>> | %-16.16t | %-32.32c{1} | %-32.32C %4L | %m%n
>>>>>>> log4j.appender.stdout.threshold=ERROR
>>>>>>>
>>>>>>> # Windows event log
>>>>>>> log4j.appender.nteventlog=org.apache.log4j.nt.NTEventLogAppender
>>>>>>> log4j.appender.nteventlog.source=Test 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
>>>>>>>
>>>>>>> *3. Start Karaf: "bin\karaf clean"*
>>>>>>>
>>>>>>> This should work.
>>>>>>>
>>>>>>> *4. Exit Karaf*
>>>>>>>
>>>>>>> *5. Change the root looger line to:*
>>>>>>>
>>>>>>> log4j.rootLogger=INFO, stdout, nteventlog
>>>>>>>
>>>>>>> *6. Start Karaf again*
>>>>>>>
>>>>>>> I get the following error:
>>>>>>>
>>>>>>> 2016-07-04 15:05:39,534 | ERROR | s4j.pax.logging) | configadmin
>>>>>>>                  | ?    ? | [org.osgi.service.log.LogService,
>>>>>>> org.knopflerfish.service.log.LogService,
>>>>>>> org.ops4j.pax.logging.PaxLoggingService,
>>>>>>> org.osgi.service.cm.ManagedService, id=12,
>>>>>>> bundle=6/mvn:org.ops4j.pax.logging/pax-logging-service/1.8.5]: Unexpected
>>>>>>> problem updating configuration org.ops4j.pax.logging
>>>>>>> java.lang.UnsatisfiedLinkError: no NTEventLogAppender in
>>>>>>> java.library.path
>>>>>>>         at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)
>>>>>>>         at java.lang.Runtime.loadLibrary0(Runtime.java:870)
>>>>>>>         at java.lang.System.loadLibrary(System.java:1122)
>>>>>>>         at
>>>>>>> org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:179)
>>>>>>>         at
>>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>>>>>>>         at
>>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>>>>>>>         at
>>>>>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>>>>>>>         at
>>>>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>>>>>>>         at java.lang.Class.newInstance(Class.java:442)
>>>>>>>         at
>>>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336)
>>>>>>>         at
>>>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)
>>>>>>>         at
>>>>>>> org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97)
>>>>>>>         at
>>>>>>> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)
>>>>>>>         at
>>>>>>> org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:615)
>>>>>>>         at
>>>>>>> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:502)
>>>>>>>         at
>>>>>>> org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)
>>>>>>>         at
>>>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)
>>>>>>>         at
>>>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)
>>>>>>>         at
>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)
>>>>>>>         at
>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)
>>>>>>>         at
>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)
>>>>>>>         at
>>>>>>> org.apache.felix.cm.impl.ConfigurationManager$UpdateConfiguration.run(ConfigurationManager.java:1753)
>>>>>>>         at
>>>>>>> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)
>>>>>>>         at
>>>>>>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)
>>>>>>>         at java.lang.Thread.run(Thread.java:745)
>>>>>>>
>>>>>>> This makes sense since I haven't provided the DLL yet.
>>>>>>>
>>>>>>> *7. Exit Karaf*
>>>>>>>
>>>>>>> *8. Put the file NTEventLogAppender.amd64.dll in KARAF_HOME/lib (I
>>>>>>> attach the file for 64 bit Windows)*
>>>>>>>
>>>>>>> *9. Start Karaf again*
>>>>>>>
>>>>>>> This works - no error messages. I take this as "proof" that the DLL
>>>>>>> has been successfully loaded.
>>>>>>>
>>>>>>> *10. Install pax-jetty:*
>>>>>>>
>>>>>>> feature:install pax-jetty
>>>>>>>
>>>>>>> I now get the following error:
>>>>>>>
>>>>>>> 2016-07-04 15:11:17,854 | ERROR | 4j.pax.logging]) | configadmin
>>>>>>>                  | ?    ? | [org.osgi.service.log.LogService,
>>>>>>> org.knopflerfish.service.log.LogService,
>>>>>>> org.ops4j.pax.logging.PaxLoggingService,
>>>>>>> org.osgi.service.cm.ManagedService, id=126,
>>>>>>> bundle=6/mvn:org.ops4j.pax.logging/pax-logging-service/1.8.5]: Unexpected
>>>>>>> problem updating configuration org.ops4j.pax.logging
>>>>>>> java.lang.UnsatisfiedLinkError: no NTEventLogAppender in
>>>>>>> java.library.path
>>>>>>>         at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)
>>>>>>>         at java.lang.Runtime.loadLibrary0(Runtime.java:870)
>>>>>>>         at java.lang.System.loadLibrary(System.java:1122)
>>>>>>>         at
>>>>>>> org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:179)
>>>>>>>         at
>>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>>>>>>>         at
>>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>>>>>>>         at
>>>>>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>>>>>>>         at
>>>>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>>>>>>>         at java.lang.Class.newInstance(Class.java:442)
>>>>>>>         at
>>>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336)
>>>>>>>         at
>>>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)
>>>>>>>         at
>>>>>>> org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97)
>>>>>>>         at
>>>>>>> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)
>>>>>>>         at
>>>>>>> org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:615)
>>>>>>>         at
>>>>>>> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:502)
>>>>>>>         at
>>>>>>> org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)
>>>>>>>         at
>>>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)
>>>>>>>         at
>>>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)
>>>>>>>         at
>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)
>>>>>>>         at
>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)
>>>>>>>         at
>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)
>>>>>>>         at
>>>>>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.provide(ConfigurationManager.java:1444)
>>>>>>>         at
>>>>>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.run(ConfigurationManager.java:1400)
>>>>>>>         at
>>>>>>> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)
>>>>>>>         at
>>>>>>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)
>>>>>>>         at java.lang.Thread.run(Thread.java:745)
>>>>>>>
>>>>>>> Can anyone understand what is happening? First the DLL is loaded,
>>>>>>> but then when pax-jetty is installed it seems to try to load it again but
>>>>>>> fails.
>>>>>>>
>>>>>>> /Bengt
>>>>>>>
>>>>>>>
>>>>>>> 2016-07-01 9:24 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>>>>>>
>>>>>>>> Turned out not to be so easy to switch version of Pax-logging.
>>>>>>>>
>>>>>>>> I edited startup.properties.I also had to change version of
>>>>>>>> pax-url-aether to 2.3.0. However, it seems like
>>>>>>>> org.apache.karaf.features.core bundle requires a version of pax-url-aehter
>>>>>>>> that is at least 2.4. However, I still think that the results I got
>>>>>>>> indicates that the NTEventLogAppender works with Pax-logging 1.8.1 but not
>>>>>>>> with 1.8.5.
>>>>>>>>
>>>>>>>> Switching to Pax-logging 1.8.1 using Karaf 4.0.5 gives me the
>>>>>>>> following error message if I put the NTEventLogAppender.amd64.dll in the
>>>>>>>> %KARAF_HOME%\lib directory:
>>>>>>>>
>>>>>>>> ERROR: Bundle org.apache.karaf.features.core [9] Error starting
>>>>>>>> mvn:org.apache.karaf.features/org.apache.karaf.features.core/4.0.5
>>>>>>>> (org.osgi.framework.BundleException: Unable to resolve
>>>>>>>> org.apache.karaf.features.core [9](R 9.0): missing requirement
>>>>>>>> [org.apache.karaf.features.core [9](R 9.0)] osgi.wiring.package;
>>>>>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))
>>>>>>>> Unresolved requirements: [[org.apache.karaf.features.core [9](R 9.0)]
>>>>>>>> osgi.wiring.package;
>>>>>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))])
>>>>>>>> org.osgi.framework.BundleException: Unable to resolve
>>>>>>>> org.apache.karaf.features.core [9](R 9.0): missing requirement
>>>>>>>> [org.apache.karaf.features.core [9](R 9.0)] osgi.wiring.package;
>>>>>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))
>>>>>>>> Unresolved requirements: [[org.apache.karaf.features.core [9](R 9.0)]
>>>>>>>> osgi.wiring.package;
>>>>>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))]
>>>>>>>>         at
>>>>>>>> org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4111)
>>>>>>>>         at
>>>>>>>> org.apache.felix.framework.Felix.startBundle(Felix.java:2117)
>>>>>>>>         at
>>>>>>>> org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1371)
>>>>>>>>         at
>>>>>>>> org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
>>>>>>>>         at java.lang.Thread.run(Thread.java:745)
>>>>>>>>
>>>>>>>> ..and the following error messages if I do NOT put the
>>>>>>>> NTEventLogAppender.amd64.dll in the %KARAF_HOME%\lib directory:
>>>>>>>>
>>>>>>>> 2016-07-01 09:14:04,105 | ERROR | s4j.pax.logging) | configadmin
>>>>>>>>                    | ?    ? | [org.osgi.service.log.LogService,
>>>>>>>> org.knopflerfish.service.log.LogService,
>>>>>>>> org.ops4j.pax.logging.PaxLoggingService,
>>>>>>>> org.osgi.service.cm.ManagedService, id=12,
>>>>>>>> bundle=6/mvn:org.ops4j.pax.logging/pax-logging-service/1.8.1]: Unexpected
>>>>>>>> problem updating configuration org.ops4j.pax.logging
>>>>>>>> java.lang.UnsatisfiedLinkError: no NTEventLogAppender in
>>>>>>>> java.library.path
>>>>>>>>         at
>>>>>>>> java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)[:1.8.0_74]
>>>>>>>>         at
>>>>>>>> java.lang.Runtime.loadLibrary0(Runtime.java:870)[:1.8.0_74]
>>>>>>>>         at java.lang.System.loadLibrary(System.java:1122)[:1.8.0_74]
>>>>>>>>         at
>>>>>>>> org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:179)
>>>>>>>>         at
>>>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>>>>>>>> Method)[:1.8.0_74]
>>>>>>>>         at
>>>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)[:1.8.0_74]
>>>>>>>>         at
>>>>>>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)[:1.8.0_74]
>>>>>>>>         at
>>>>>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:423)[:1.8.0_74]
>>>>>>>>         at java.lang.Class.newInstance(Class.java:442)[:1.8.0_74]
>>>>>>>>         at
>>>>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>>>>         at
>>>>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>>>>         at
>>>>>>>> org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>>>>         at
>>>>>>>> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>>>>         at
>>>>>>>> org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:639)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>>>>         at
>>>>>>>> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:504)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>>>>         at
>>>>>>>> org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>>>>         at
>>>>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>>>>         at
>>>>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>>>>         at
>>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>         at
>>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>         at
>>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>         at
>>>>>>>> org.apache.felix.cm.impl.ConfigurationManager$UpdateConfiguration.run(ConfigurationManager.java:1753)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>         at
>>>>>>>> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>         at
>>>>>>>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>         at java.lang.Thread.run(Thread.java:745)[:1.8.0_74]
>>>>>>>> ERROR: Bundle org.apache.karaf.features.core [9] Error starting
>>>>>>>> mvn:org.apache.karaf.features/org.apache.karaf.features.core/4.0.5
>>>>>>>> (org.osgi.framework.BundleException: Unable to resolve
>>>>>>>> org.apache.karaf.features.core [9](R 9.0): missing requirement
>>>>>>>> [org.apache.karaf.features.core [9](R 9.0)] osgi.wiring.package;
>>>>>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))
>>>>>>>> Unresolved requirements: [[org.apache.karaf.features.core [9](R 9.0)]
>>>>>>>> osgi.wiring.package;
>>>>>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))])org.osgi.framework.BundleException:
>>>>>>>> Unable to resolve org.apache.karaf.features.core [9](R 9.0): missing
>>>>>>>> requirement [org.apache.karaf.features.core [9](R 9.0)]
>>>>>>>> osgi.wiring.package;
>>>>>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))
>>>>>>>> Unresolved requirements: [[org.apache.karaf.features.core [9](R 9.0)]
>>>>>>>> osgi.wiring.package;
>>>>>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))]
>>>>>>>>         at
>>>>>>>> org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4111)
>>>>>>>>         at
>>>>>>>> org.apache.felix.framework.Felix.startBundle(Felix.java:2117)
>>>>>>>>         at
>>>>>>>> org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1371)
>>>>>>>>         at
>>>>>>>> org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
>>>>>>>>         at java.lang.Thread.run(Thread.java:745)
>>>>>>>>
>>>>>>>> So, the DLL seems to be loaded and Pax-logging seems to work using
>>>>>>>> Pax-logging 1.8.1 but not using Pax-logging 1.8.5.
>>>>>>>>
>>>>>>>> I will re-post this conversation to the OOPS4J mailing list.
>>>>>>>>
>>>>>>>> /Bengt
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> 2016-07-01 8:55 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>>>>>>>
>>>>>>>>> OK - I guess I misunderstood this then.
>>>>>>>>>
>>>>>>>>> Looking in the POM's I now see that there are dependencies to both
>>>>>>>>> log4j 1.2.16 and log4j 2.x.
>>>>>>>>>
>>>>>>>>> I wonder then why the NTEventLogAppender can't be used in Karaf
>>>>>>>>> 4.0.5. For a while I thought it might be a java version problem. I now use
>>>>>>>>> Java 8 instead of Java 7 like I did before. But even if I run Karaf 4.0.5
>>>>>>>>> using Java 7 I still get the same problem.
>>>>>>>>>
>>>>>>>>> I will try to use Karaf 4.0.5 with Pax-logging 1.8.1 to see if it
>>>>>>>>> makes any difference. What is the best way to accomplish that?
>>>>>>>>>
>>>>>>>>> /Bengt
>>>>>>>>>
>>>>>>>>> 2016-06-30 16:54 GMT+02:00 Achim Nierbeck <bcanhome@googlemail.com
>>>>>>>>> >:
>>>>>>>>>
>>>>>>>>>> Hi Bengt,
>>>>>>>>>>
>>>>>>>>>> newer versions of Pax-Logging don't use log4j2 per default so
>>>>>>>>>> this should still work ...
>>>>>>>>>> the underlying impl is still log4j 1 unless someone changed it on
>>>>>>>>>> a minor version update ...
>>>>>>>>>>
>>>>>>>>>> regards, Achim
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 2016-06-30 16:23 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>>>>>>>>>
>>>>>>>>>>> Thanks JB,
>>>>>>>>>>>
>>>>>>>>>>> Tried it though and no diffference.
>>>>>>>>>>>
>>>>>>>>>>> When investigating this it seems like newer versions of
>>>>>>>>>>> pax-logging uses log4j2. Unfortunately the NTEventLogAppender
>>>>>>>>>>> is incompatible with log4j2.
>>>>>>>>>>>
>>>>>>>>>>> I've found the project log4jna that seems to target this.
>>>>>>>>>>> Unfortunately I cannot find a released version that supports log4j2.
>>>>>>>>>>>
>>>>>>>>>>> Anyone else encountered this?
>>>>>>>>>>>
>>>>>>>>>>> /Bengt
>>>>>>>>>>>
>>>>>>>>>>> 2016-06-30 14:48 GMT+02:00 Jean-Baptiste Onofré <jb@nanthrax.net
>>>>>>>>>>> >:
>>>>>>>>>>>
>>>>>>>>>>>> In Karaf 4, the dll should go in lib/ext.
>>>>>>>>>>>>
>>>>>>>>>>>> Regards
>>>>>>>>>>>> JB
>>>>>>>>>>>>
>>>>>>>>>>>> On 06/30/2016 02:16 PM, Bengt Rodehav wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> I have a feeling that I need to put the
>>>>>>>>>>>>> NTEventLogAppender.amd4.dll in
>>>>>>>>>>>>> another directory in Karaf 4.0.5 then in Karaf 2.4.1.
>>>>>>>>>>>>>
>>>>>>>>>>>>> I have always put it in the directory %KARAF_HOME%/lib which
>>>>>>>>>>>>> works for
>>>>>>>>>>>>> Karaf 2.4.1. Where should DLL's be put in Karaf 4.0.5?
>>>>>>>>>>>>>
>>>>>>>>>>>>> /Bengt
>>>>>>>>>>>>>
>>>>>>>>>>>>> 2016-06-29 17:37 GMT+02:00 Bengt Rodehav <bengt@rodehav.com
>>>>>>>>>>>>> <ma...@rodehav.com>>:
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>     I'm trying to upgrade from Karaf 2..1 to 4.0.5 and I run
>>>>>>>>>>>>> into
>>>>>>>>>>>>>     problems regarding NTEventLogAppender. I get the following
>>>>>>>>>>>>> on startup:
>>>>>>>>>>>>>
>>>>>>>>>>>>>     2016-06-29 17:16:05,354 | ERROR | 4j.pax.logging]) |
>>>>>>>>>>>>> configadmin
>>>>>>>>>>>>>                       | ?
>>>>>>>>>>>>>          ? | [org.osgi.service.log.LogService,
>>>>>>>>>>>>>     org.knopflerfish.service.log.LogService,
>>>>>>>>>>>>>     org.ops4j.pax.logging.PaxLoggingService,
>>>>>>>>>>>>>     org.osgi.service.cm.ManagedService, id=34,
>>>>>>>>>>>>>
>>>>>>>>>>>>> bundle=6/mvn:org.ops4j.pax.logging/pax-logging-service/1.8.5]:
>>>>>>>>>>>>>     Unexpected problem updating configuration
>>>>>>>>>>>>> org.ops4j.pax.logging
>>>>>>>>>>>>>     java.lang.UnsatisfiedLinkError: no NTEventLogAppender in
>>>>>>>>>>>>>     java.library.path
>>>>>>>>>>>>>              at
>>>>>>>>>>>>>
>>>>>>>>>>>>> java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)[:1.8.0_74]
>>>>>>>>>>>>>              at
>>>>>>>>>>>>> java.lang.Runtime.loadLibrary0(Runtime.java:870)[:1.8.0_74]
>>>>>>>>>>>>>              at
>>>>>>>>>>>>> java.lang.System.loadLibrary(System.java:1122)[:1.8.0_74]
>>>>>>>>>>>>>              at
>>>>>>>>>>>>>
>>>>>>>>>>>>> org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:179)
>>>>>>>>>>>>>              at
>>>>>>>>>>>>>
>>>>>>>>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>>>>>>>>>>>>>     Method)[:1.8.0_74]
>>>>>>>>>>>>>              at
>>>>>>>>>>>>>
>>>>>>>>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)[:1.8.0_74]
>>>>>>>>>>>>>              at
>>>>>>>>>>>>>
>>>>>>>>>>>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)[:1.8.0_74]
>>>>>>>>>>>>>              at
>>>>>>>>>>>>>
>>>>>>>>>>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:423)[:1.8.0_74]
>>>>>>>>>>>>>              at
>>>>>>>>>>>>> java.lang.Class.newInstance(Class.java:442)[:1.8.0_74]
>>>>>>>>>>>>>              at
>>>>>>>>>>>>>
>>>>>>>>>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>>>>              at
>>>>>>>>>>>>>
>>>>>>>>>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>>>>              at
>>>>>>>>>>>>>
>>>>>>>>>>>>> org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>>>>              at
>>>>>>>>>>>>>
>>>>>>>>>>>>> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>>>>              at
>>>>>>>>>>>>>
>>>>>>>>>>>>> org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:639)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>>>>              at
>>>>>>>>>>>>>
>>>>>>>>>>>>> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:504)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>>>>              at
>>>>>>>>>>>>>
>>>>>>>>>>>>> org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>>>>              at
>>>>>>>>>>>>>
>>>>>>>>>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>>>>              at
>>>>>>>>>>>>>
>>>>>>>>>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>>>>              at
>>>>>>>>>>>>>
>>>>>>>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>>>>>              at
>>>>>>>>>>>>>
>>>>>>>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>>>>>              at
>>>>>>>>>>>>>
>>>>>>>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>>>>>              at
>>>>>>>>>>>>>
>>>>>>>>>>>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.provide(ConfigurationManager.java:1444)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>>>>>              at
>>>>>>>>>>>>>
>>>>>>>>>>>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.run(ConfigurationManager.java:1400)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>>>>>              at
>>>>>>>>>>>>>
>>>>>>>>>>>>> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>>>>>              at
>>>>>>>>>>>>>
>>>>>>>>>>>>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>>>>>              at
>>>>>>>>>>>>> java.lang.Thread.run(Thread.java:745)[:1.8.0_74]
>>>>>>>>>>>>>
>>>>>>>>>>>>>     Like I did on Karaf 2.4.1, I have put the
>>>>>>>>>>>>>     file NTEventLogAppender.amd64.dll in the "lib" directory
>>>>>>>>>>>>> under
>>>>>>>>>>>>>     Karaf. It has the version 1.2.16.1.
>>>>>>>>>>>>>
>>>>>>>>>>>>>     Does anyone know how to get the NTEventLogAppender to work
>>>>>>>>>>>>> with
>>>>>>>>>>>>>     Karaf 4.0.5?
>>>>>>>>>>>>>
>>>>>>>>>>>>>     /Bengt
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> Jean-Baptiste Onofré
>>>>>>>>>>>> jbonofre@apache.org
>>>>>>>>>>>> http://blog.nanthrax.net
>>>>>>>>>>>> Talend - http://www.talend.com
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>>
>>>>>>>>>> Apache Member
>>>>>>>>>> Apache Karaf <http://karaf.apache.org/> Committer & PMC
>>>>>>>>>> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/>
>>>>>>>>>> Committer & Project Lead
>>>>>>>>>> blog <http://notizblog.nierbeck.de/>
>>>>>>>>>> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>
>>>>>>>>>>
>>>>>>>>>> Software Architect / Project Manager / Scrum Master
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> Apache Member
>>>> Apache Karaf <http://karaf.apache.org/> Committer & PMC
>>>> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/>
>>>> Committer & Project Lead
>>>> blog <http://notizblog.nierbeck.de/>
>>>> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>
>>>>
>>>> Software Architect / Project Manager / Scrum Master
>>>>
>>>>
>>>
>>
>
>
> --
>
> Apache Member
> Apache Karaf <http://karaf.apache.org/> Committer & PMC
> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer &
> Project Lead
> blog <http://notizblog.nierbeck.de/>
> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>
>
> Software Architect / Project Manager / Scrum Master
>
>

Re: Log4j NTEventLogAppender in Karaf 4.0.5

Posted by Achim Nierbeck <bc...@googlemail.com>.
Hi Bengt,

sorry been very busy lately. I did give it a try but couldn't find a reason
why Log4j2 should be used or Pax Logging should be triggered to be
restarted. There isn't any reason for the pax web bundles to do so ... :/
sorry didn't get any further on this ..

regards, Achim




2016-07-11 14:47 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:

> Did you have a chance to look at this Achim? If there is a problem with
> the pax-jetty feature it would be nice to have it fixed in Karaf 4.0.6
> which I understand is in the works.
>
> /Bengt
>
> 2016-07-07 9:13 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>
>> OK - thanks Achim,
>>
>> /Bengt
>>
>> 2016-07-06 22:08 GMT+02:00 Achim Nierbeck <bc...@googlemail.com>:
>>
>>> Hi Bengt,
>>>
>>> I'll try to find out if one of the bundles in that feature depends on
>>> log4j2 ... but I'm not aware of such a dependency.
>>>
>>> Your suspicion about dynamic loading of DLLs is correct in case of the
>>> location of the dll is inside of a bundle and does have dependencies to
>>> another dll. If it's a dll loaded via the root classloader that shouldn't
>>> be of an issue.
>>>
>>> regards, Achim
>>>
>>>
>>> 2016-07-04 16:04 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>>
>>>> Another theory: Looking at the stack trace this seems to be triggered
>>>> by a configuration update. Could the problem be that Pax-logging is trying
>>>> to load the DLL again and failing since it is already loaded? Perhaps the
>>>> initial load works but subsequent configuration updates does not?
>>>>
>>>> I tried to verify this...
>>>>
>>>> After successful start of Karaf (after step 9 in my previous post), I
>>>> edit org.ops4j.pas.logging.cfg (by changing the root logger between INFO
>>>> and DEBUG). This causes no error.
>>>>
>>>> But after having installed feature pax-jetty (after step 10 in my
>>>> previous post), every change in org.ops4j.pas.logging.cfg causes the same
>>>> error to appear (the stack trace included in my previous post).
>>>>
>>>> It's as if installing the pax-jetty feature takes gives control of
>>>> org.ops4j.pas.logging.cfg to someone who cannot load the DLL. I have no
>>>> idea how this could happen.
>>>>
>>>> Anyone else has an idea?
>>>>
>>>> /Bengt
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> /Bengt
>>>>
>>>> 2016-07-04 15:51 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>>>
>>>>> A theory: Could one of the bundles installed by feature pax-jetty be
>>>>> using log4j 2.x directly without using Pax-logging? If so, would it too try
>>>>> to read the log4j configuration file? I guess it would fail to load the DLL
>>>>> since it is probably not compatible with log4j 2.x.
>>>>>
>>>>> Could this happen? If so, how can I find out which bundle?
>>>>>
>>>>> /Bengt
>>>>>
>>>>> 2016-07-04 15:15 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>>>>
>>>>>> Back to the Karaf mailing list....
>>>>>>
>>>>>> I can actually get this problem on a standard vanilla Karaf 4.0.5. It
>>>>>> seems to be triggered when installing the feature pax-jetty.
>>>>>>
>>>>>> *1. Install standard Karaf 4.0.5*
>>>>>>
>>>>>> *2. Replace org.ops4j.pax.logging.cfg with the following:*
>>>>>>
>>>>>> log4j.rootLogger=INFO, stdout
>>>>>>
>>>>>> # CONSOLE appender
>>>>>> log4j.appender.stdout=org.apache.log4j.ConsoleAppender
>>>>>> log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
>>>>>> log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} | %-5.5p |
>>>>>> %-16.16t | %-32.32c{1} | %-32.32C %4L | %m%n
>>>>>> log4j.appender.stdout.threshold=ERROR
>>>>>>
>>>>>> # Windows event log
>>>>>> log4j.appender.nteventlog=org.apache.log4j.nt.NTEventLogAppender
>>>>>> log4j.appender.nteventlog.source=Test 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
>>>>>>
>>>>>> *3. Start Karaf: "bin\karaf clean"*
>>>>>>
>>>>>> This should work.
>>>>>>
>>>>>> *4. Exit Karaf*
>>>>>>
>>>>>> *5. Change the root looger line to:*
>>>>>>
>>>>>> log4j.rootLogger=INFO, stdout, nteventlog
>>>>>>
>>>>>> *6. Start Karaf again*
>>>>>>
>>>>>> I get the following error:
>>>>>>
>>>>>> 2016-07-04 15:05:39,534 | ERROR | s4j.pax.logging) | configadmin
>>>>>>                  | ?    ? | [org.osgi.service.log.LogService,
>>>>>> org.knopflerfish.service.log.LogService,
>>>>>> org.ops4j.pax.logging.PaxLoggingService,
>>>>>> org.osgi.service.cm.ManagedService, id=12,
>>>>>> bundle=6/mvn:org.ops4j.pax.logging/pax-logging-service/1.8.5]: Unexpected
>>>>>> problem updating configuration org.ops4j.pax.logging
>>>>>> java.lang.UnsatisfiedLinkError: no NTEventLogAppender in
>>>>>> java.library.path
>>>>>>         at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)
>>>>>>         at java.lang.Runtime.loadLibrary0(Runtime.java:870)
>>>>>>         at java.lang.System.loadLibrary(System.java:1122)
>>>>>>         at
>>>>>> org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:179)
>>>>>>         at
>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>>>>>>         at
>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>>>>>>         at
>>>>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>>>>>>         at
>>>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>>>>>>         at java.lang.Class.newInstance(Class.java:442)
>>>>>>         at
>>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336)
>>>>>>         at
>>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)
>>>>>>         at
>>>>>> org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97)
>>>>>>         at
>>>>>> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)
>>>>>>         at
>>>>>> org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:615)
>>>>>>         at
>>>>>> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:502)
>>>>>>         at
>>>>>> org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)
>>>>>>         at
>>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)
>>>>>>         at
>>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)
>>>>>>         at
>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)
>>>>>>         at
>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)
>>>>>>         at
>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)
>>>>>>         at
>>>>>> org.apache.felix.cm.impl.ConfigurationManager$UpdateConfiguration.run(ConfigurationManager.java:1753)
>>>>>>         at
>>>>>> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)
>>>>>>         at
>>>>>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)
>>>>>>         at java.lang.Thread.run(Thread.java:745)
>>>>>>
>>>>>> This makes sense since I haven't provided the DLL yet.
>>>>>>
>>>>>> *7. Exit Karaf*
>>>>>>
>>>>>> *8. Put the file NTEventLogAppender.amd64.dll in KARAF_HOME/lib (I
>>>>>> attach the file for 64 bit Windows)*
>>>>>>
>>>>>> *9. Start Karaf again*
>>>>>>
>>>>>> This works - no error messages. I take this as "proof" that the DLL
>>>>>> has been successfully loaded.
>>>>>>
>>>>>> *10. Install pax-jetty:*
>>>>>>
>>>>>> feature:install pax-jetty
>>>>>>
>>>>>> I now get the following error:
>>>>>>
>>>>>> 2016-07-04 15:11:17,854 | ERROR | 4j.pax.logging]) | configadmin
>>>>>>                  | ?    ? | [org.osgi.service.log.LogService,
>>>>>> org.knopflerfish.service.log.LogService,
>>>>>> org.ops4j.pax.logging.PaxLoggingService,
>>>>>> org.osgi.service.cm.ManagedService, id=126,
>>>>>> bundle=6/mvn:org.ops4j.pax.logging/pax-logging-service/1.8.5]: Unexpected
>>>>>> problem updating configuration org.ops4j.pax.logging
>>>>>> java.lang.UnsatisfiedLinkError: no NTEventLogAppender in
>>>>>> java.library.path
>>>>>>         at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)
>>>>>>         at java.lang.Runtime.loadLibrary0(Runtime.java:870)
>>>>>>         at java.lang.System.loadLibrary(System.java:1122)
>>>>>>         at
>>>>>> org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:179)
>>>>>>         at
>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>>>>>>         at
>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>>>>>>         at
>>>>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>>>>>>         at
>>>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>>>>>>         at java.lang.Class.newInstance(Class.java:442)
>>>>>>         at
>>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336)
>>>>>>         at
>>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)
>>>>>>         at
>>>>>> org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97)
>>>>>>         at
>>>>>> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)
>>>>>>         at
>>>>>> org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:615)
>>>>>>         at
>>>>>> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:502)
>>>>>>         at
>>>>>> org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)
>>>>>>         at
>>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)
>>>>>>         at
>>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)
>>>>>>         at
>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)
>>>>>>         at
>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)
>>>>>>         at
>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)
>>>>>>         at
>>>>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.provide(ConfigurationManager.java:1444)
>>>>>>         at
>>>>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.run(ConfigurationManager.java:1400)
>>>>>>         at
>>>>>> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)
>>>>>>         at
>>>>>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)
>>>>>>         at java.lang.Thread.run(Thread.java:745)
>>>>>>
>>>>>> Can anyone understand what is happening? First the DLL is loaded, but
>>>>>> then when pax-jetty is installed it seems to try to load it again but fails.
>>>>>>
>>>>>> /Bengt
>>>>>>
>>>>>>
>>>>>> 2016-07-01 9:24 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>>>>>
>>>>>>> Turned out not to be so easy to switch version of Pax-logging.
>>>>>>>
>>>>>>> I edited startup.properties.I also had to change version of
>>>>>>> pax-url-aether to 2.3.0. However, it seems like
>>>>>>> org.apache.karaf.features.core bundle requires a version of pax-url-aehter
>>>>>>> that is at least 2.4. However, I still think that the results I got
>>>>>>> indicates that the NTEventLogAppender works with Pax-logging 1.8.1 but not
>>>>>>> with 1.8.5.
>>>>>>>
>>>>>>> Switching to Pax-logging 1.8.1 using Karaf 4.0.5 gives me the
>>>>>>> following error message if I put the NTEventLogAppender.amd64.dll in the
>>>>>>> %KARAF_HOME%\lib directory:
>>>>>>>
>>>>>>> ERROR: Bundle org.apache.karaf.features.core [9] Error starting
>>>>>>> mvn:org.apache.karaf.features/org.apache.karaf.features.core/4.0.5
>>>>>>> (org.osgi.framework.BundleException: Unable to resolve
>>>>>>> org.apache.karaf.features.core [9](R 9.0): missing requirement
>>>>>>> [org.apache.karaf.features.core [9](R 9.0)] osgi.wiring.package;
>>>>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))
>>>>>>> Unresolved requirements: [[org.apache.karaf.features.core [9](R 9.0)]
>>>>>>> osgi.wiring.package;
>>>>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))])
>>>>>>> org.osgi.framework.BundleException: Unable to resolve
>>>>>>> org.apache.karaf.features.core [9](R 9.0): missing requirement
>>>>>>> [org.apache.karaf.features.core [9](R 9.0)] osgi.wiring.package;
>>>>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))
>>>>>>> Unresolved requirements: [[org.apache.karaf.features.core [9](R 9.0)]
>>>>>>> osgi.wiring.package;
>>>>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))]
>>>>>>>         at
>>>>>>> org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4111)
>>>>>>>         at
>>>>>>> org.apache.felix.framework.Felix.startBundle(Felix.java:2117)
>>>>>>>         at
>>>>>>> org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1371)
>>>>>>>         at
>>>>>>> org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
>>>>>>>         at java.lang.Thread.run(Thread.java:745)
>>>>>>>
>>>>>>> ..and the following error messages if I do NOT put the
>>>>>>> NTEventLogAppender.amd64.dll in the %KARAF_HOME%\lib directory:
>>>>>>>
>>>>>>> 2016-07-01 09:14:04,105 | ERROR | s4j.pax.logging) | configadmin
>>>>>>>                  | ?    ? | [org.osgi.service.log.LogService,
>>>>>>> org.knopflerfish.service.log.LogService,
>>>>>>> org.ops4j.pax.logging.PaxLoggingService,
>>>>>>> org.osgi.service.cm.ManagedService, id=12,
>>>>>>> bundle=6/mvn:org.ops4j.pax.logging/pax-logging-service/1.8.1]: Unexpected
>>>>>>> problem updating configuration org.ops4j.pax.logging
>>>>>>> java.lang.UnsatisfiedLinkError: no NTEventLogAppender in
>>>>>>> java.library.path
>>>>>>>         at
>>>>>>> java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)[:1.8.0_74]
>>>>>>>         at
>>>>>>> java.lang.Runtime.loadLibrary0(Runtime.java:870)[:1.8.0_74]
>>>>>>>         at java.lang.System.loadLibrary(System.java:1122)[:1.8.0_74]
>>>>>>>         at
>>>>>>> org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:179)
>>>>>>>         at
>>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>>>>>>> Method)[:1.8.0_74]
>>>>>>>         at
>>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)[:1.8.0_74]
>>>>>>>         at
>>>>>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)[:1.8.0_74]
>>>>>>>         at
>>>>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:423)[:1.8.0_74]
>>>>>>>         at java.lang.Class.newInstance(Class.java:442)[:1.8.0_74]
>>>>>>>         at
>>>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>>>         at
>>>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>>>         at
>>>>>>> org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>>>         at
>>>>>>> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>>>         at
>>>>>>> org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:639)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>>>         at
>>>>>>> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:504)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>>>         at
>>>>>>> org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>>>         at
>>>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>>>         at
>>>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>>>         at
>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>         at
>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>         at
>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>         at
>>>>>>> org.apache.felix.cm.impl.ConfigurationManager$UpdateConfiguration.run(ConfigurationManager.java:1753)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>         at
>>>>>>> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>         at
>>>>>>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>         at java.lang.Thread.run(Thread.java:745)[:1.8.0_74]
>>>>>>> ERROR: Bundle org.apache.karaf.features.core [9] Error starting
>>>>>>> mvn:org.apache.karaf.features/org.apache.karaf.features.core/4.0.5
>>>>>>> (org.osgi.framework.BundleException: Unable to resolve
>>>>>>> org.apache.karaf.features.core [9](R 9.0): missing requirement
>>>>>>> [org.apache.karaf.features.core [9](R 9.0)] osgi.wiring.package;
>>>>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))
>>>>>>> Unresolved requirements: [[org.apache.karaf.features.core [9](R 9.0)]
>>>>>>> osgi.wiring.package;
>>>>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))])org.osgi.framework.BundleException:
>>>>>>> Unable to resolve org.apache.karaf.features.core [9](R 9.0): missing
>>>>>>> requirement [org.apache.karaf.features.core [9](R 9.0)]
>>>>>>> osgi.wiring.package;
>>>>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))
>>>>>>> Unresolved requirements: [[org.apache.karaf.features.core [9](R 9.0)]
>>>>>>> osgi.wiring.package;
>>>>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))]
>>>>>>>         at
>>>>>>> org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4111)
>>>>>>>         at
>>>>>>> org.apache.felix.framework.Felix.startBundle(Felix.java:2117)
>>>>>>>         at
>>>>>>> org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1371)
>>>>>>>         at
>>>>>>> org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
>>>>>>>         at java.lang.Thread.run(Thread.java:745)
>>>>>>>
>>>>>>> So, the DLL seems to be loaded and Pax-logging seems to work using
>>>>>>> Pax-logging 1.8.1 but not using Pax-logging 1.8.5.
>>>>>>>
>>>>>>> I will re-post this conversation to the OOPS4J mailing list.
>>>>>>>
>>>>>>> /Bengt
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 2016-07-01 8:55 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>>>>>>
>>>>>>>> OK - I guess I misunderstood this then.
>>>>>>>>
>>>>>>>> Looking in the POM's I now see that there are dependencies to both
>>>>>>>> log4j 1.2.16 and log4j 2.x.
>>>>>>>>
>>>>>>>> I wonder then why the NTEventLogAppender can't be used in Karaf
>>>>>>>> 4.0.5. For a while I thought it might be a java version problem. I now use
>>>>>>>> Java 8 instead of Java 7 like I did before. But even if I run Karaf 4.0.5
>>>>>>>> using Java 7 I still get the same problem.
>>>>>>>>
>>>>>>>> I will try to use Karaf 4.0.5 with Pax-logging 1.8.1 to see if it
>>>>>>>> makes any difference. What is the best way to accomplish that?
>>>>>>>>
>>>>>>>> /Bengt
>>>>>>>>
>>>>>>>> 2016-06-30 16:54 GMT+02:00 Achim Nierbeck <bc...@googlemail.com>
>>>>>>>> :
>>>>>>>>
>>>>>>>>> Hi Bengt,
>>>>>>>>>
>>>>>>>>> newer versions of Pax-Logging don't use log4j2 per default so this
>>>>>>>>> should still work ...
>>>>>>>>> the underlying impl is still log4j 1 unless someone changed it on
>>>>>>>>> a minor version update ...
>>>>>>>>>
>>>>>>>>> regards, Achim
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 2016-06-30 16:23 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>>>>>>>>
>>>>>>>>>> Thanks JB,
>>>>>>>>>>
>>>>>>>>>> Tried it though and no diffference.
>>>>>>>>>>
>>>>>>>>>> When investigating this it seems like newer versions of
>>>>>>>>>> pax-logging uses log4j2. Unfortunately the NTEventLogAppender is
>>>>>>>>>> incompatible with log4j2.
>>>>>>>>>>
>>>>>>>>>> I've found the project log4jna that seems to target this.
>>>>>>>>>> Unfortunately I cannot find a released version that supports log4j2.
>>>>>>>>>>
>>>>>>>>>> Anyone else encountered this?
>>>>>>>>>>
>>>>>>>>>> /Bengt
>>>>>>>>>>
>>>>>>>>>> 2016-06-30 14:48 GMT+02:00 Jean-Baptiste Onofré <jb...@nanthrax.net>
>>>>>>>>>> :
>>>>>>>>>>
>>>>>>>>>>> In Karaf 4, the dll should go in lib/ext.
>>>>>>>>>>>
>>>>>>>>>>> Regards
>>>>>>>>>>> JB
>>>>>>>>>>>
>>>>>>>>>>> On 06/30/2016 02:16 PM, Bengt Rodehav wrote:
>>>>>>>>>>>
>>>>>>>>>>>> I have a feeling that I need to put the
>>>>>>>>>>>> NTEventLogAppender.amd4.dll in
>>>>>>>>>>>> another directory in Karaf 4.0.5 then in Karaf 2.4.1.
>>>>>>>>>>>>
>>>>>>>>>>>> I have always put it in the directory %KARAF_HOME%/lib which
>>>>>>>>>>>> works for
>>>>>>>>>>>> Karaf 2.4.1. Where should DLL's be put in Karaf 4.0.5?
>>>>>>>>>>>>
>>>>>>>>>>>> /Bengt
>>>>>>>>>>>>
>>>>>>>>>>>> 2016-06-29 17:37 GMT+02:00 Bengt Rodehav <bengt@rodehav.com
>>>>>>>>>>>> <ma...@rodehav.com>>:
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>     I'm trying to upgrade from Karaf 2..1 to 4.0.5 and I run
>>>>>>>>>>>> into
>>>>>>>>>>>>     problems regarding NTEventLogAppender. I get the following
>>>>>>>>>>>> on startup:
>>>>>>>>>>>>
>>>>>>>>>>>>     2016-06-29 17:16:05,354 | ERROR | 4j.pax.logging]) |
>>>>>>>>>>>> configadmin
>>>>>>>>>>>>                       | ?
>>>>>>>>>>>>          ? | [org.osgi.service.log.LogService,
>>>>>>>>>>>>     org.knopflerfish.service.log.LogService,
>>>>>>>>>>>>     org.ops4j.pax.logging.PaxLoggingService,
>>>>>>>>>>>>     org.osgi.service.cm.ManagedService, id=34,
>>>>>>>>>>>>
>>>>>>>>>>>> bundle=6/mvn:org.ops4j.pax.logging/pax-logging-service/1.8.5]:
>>>>>>>>>>>>     Unexpected problem updating configuration
>>>>>>>>>>>> org.ops4j.pax.logging
>>>>>>>>>>>>     java.lang.UnsatisfiedLinkError: no NTEventLogAppender in
>>>>>>>>>>>>     java.library.path
>>>>>>>>>>>>              at
>>>>>>>>>>>>
>>>>>>>>>>>> java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)[:1.8.0_74]
>>>>>>>>>>>>              at
>>>>>>>>>>>> java.lang.Runtime.loadLibrary0(Runtime.java:870)[:1.8.0_74]
>>>>>>>>>>>>              at
>>>>>>>>>>>> java.lang.System.loadLibrary(System.java:1122)[:1.8.0_74]
>>>>>>>>>>>>              at
>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:179)
>>>>>>>>>>>>              at
>>>>>>>>>>>>
>>>>>>>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>>>>>>>>>>>>     Method)[:1.8.0_74]
>>>>>>>>>>>>              at
>>>>>>>>>>>>
>>>>>>>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)[:1.8.0_74]
>>>>>>>>>>>>              at
>>>>>>>>>>>>
>>>>>>>>>>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)[:1.8.0_74]
>>>>>>>>>>>>              at
>>>>>>>>>>>>
>>>>>>>>>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:423)[:1.8.0_74]
>>>>>>>>>>>>              at
>>>>>>>>>>>> java.lang.Class.newInstance(Class.java:442)[:1.8.0_74]
>>>>>>>>>>>>              at
>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>>>              at
>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>>>              at
>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>>>              at
>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>>>              at
>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:639)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>>>              at
>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:504)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>>>              at
>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>>>              at
>>>>>>>>>>>>
>>>>>>>>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>>>              at
>>>>>>>>>>>>
>>>>>>>>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>>>              at
>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>>>>              at
>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>>>>              at
>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>>>>              at
>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.provide(ConfigurationManager.java:1444)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>>>>              at
>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.run(ConfigurationManager.java:1400)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>>>>              at
>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>>>>              at
>>>>>>>>>>>>
>>>>>>>>>>>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>>>>              at java.lang.Thread.run(Thread.java:745)[:1.8.0_74]
>>>>>>>>>>>>
>>>>>>>>>>>>     Like I did on Karaf 2.4.1, I have put the
>>>>>>>>>>>>     file NTEventLogAppender.amd64.dll in the "lib" directory
>>>>>>>>>>>> under
>>>>>>>>>>>>     Karaf. It has the version 1.2.16.1.
>>>>>>>>>>>>
>>>>>>>>>>>>     Does anyone know how to get the NTEventLogAppender to work
>>>>>>>>>>>> with
>>>>>>>>>>>>     Karaf 4.0.5?
>>>>>>>>>>>>
>>>>>>>>>>>>     /Bengt
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> Jean-Baptiste Onofré
>>>>>>>>>>> jbonofre@apache.org
>>>>>>>>>>> http://blog.nanthrax.net
>>>>>>>>>>> Talend - http://www.talend.com
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>>
>>>>>>>>> Apache Member
>>>>>>>>> Apache Karaf <http://karaf.apache.org/> Committer & PMC
>>>>>>>>> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/>
>>>>>>>>> Committer & Project Lead
>>>>>>>>> blog <http://notizblog.nierbeck.de/>
>>>>>>>>> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>
>>>>>>>>>
>>>>>>>>> Software Architect / Project Manager / Scrum Master
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>>
>>> --
>>>
>>> Apache Member
>>> Apache Karaf <http://karaf.apache.org/> Committer & PMC
>>> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer
>>> & Project Lead
>>> blog <http://notizblog.nierbeck.de/>
>>> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>
>>>
>>> Software Architect / Project Manager / Scrum Master
>>>
>>>
>>
>


-- 

Apache Member
Apache Karaf <http://karaf.apache.org/> Committer & PMC
OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer &
Project Lead
blog <http://notizblog.nierbeck.de/>
Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>

Software Architect / Project Manager / Scrum Master

Re: Log4j NTEventLogAppender in Karaf 4.0.5

Posted by Bengt Rodehav <be...@rodehav.com>.
Did you have a chance to look at this Achim? If there is a problem with the
pax-jetty feature it would be nice to have it fixed in Karaf 4.0.6 which I
understand is in the works.

/Bengt

2016-07-07 9:13 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:

> OK - thanks Achim,
>
> /Bengt
>
> 2016-07-06 22:08 GMT+02:00 Achim Nierbeck <bc...@googlemail.com>:
>
>> Hi Bengt,
>>
>> I'll try to find out if one of the bundles in that feature depends on
>> log4j2 ... but I'm not aware of such a dependency.
>>
>> Your suspicion about dynamic loading of DLLs is correct in case of the
>> location of the dll is inside of a bundle and does have dependencies to
>> another dll. If it's a dll loaded via the root classloader that shouldn't
>> be of an issue.
>>
>> regards, Achim
>>
>>
>> 2016-07-04 16:04 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>
>>> Another theory: Looking at the stack trace this seems to be triggered by
>>> a configuration update. Could the problem be that Pax-logging is trying to
>>> load the DLL again and failing since it is already loaded? Perhaps the
>>> initial load works but subsequent configuration updates does not?
>>>
>>> I tried to verify this...
>>>
>>> After successful start of Karaf (after step 9 in my previous post), I
>>> edit org.ops4j.pas.logging.cfg (by changing the root logger between INFO
>>> and DEBUG). This causes no error.
>>>
>>> But after having installed feature pax-jetty (after step 10 in my
>>> previous post), every change in org.ops4j.pas.logging.cfg causes the same
>>> error to appear (the stack trace included in my previous post).
>>>
>>> It's as if installing the pax-jetty feature takes gives control of
>>> org.ops4j.pas.logging.cfg to someone who cannot load the DLL. I have no
>>> idea how this could happen.
>>>
>>> Anyone else has an idea?
>>>
>>> /Bengt
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> /Bengt
>>>
>>> 2016-07-04 15:51 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>>
>>>> A theory: Could one of the bundles installed by feature pax-jetty be
>>>> using log4j 2.x directly without using Pax-logging? If so, would it too try
>>>> to read the log4j configuration file? I guess it would fail to load the DLL
>>>> since it is probably not compatible with log4j 2.x.
>>>>
>>>> Could this happen? If so, how can I find out which bundle?
>>>>
>>>> /Bengt
>>>>
>>>> 2016-07-04 15:15 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>>>
>>>>> Back to the Karaf mailing list....
>>>>>
>>>>> I can actually get this problem on a standard vanilla Karaf 4.0.5. It
>>>>> seems to be triggered when installing the feature pax-jetty.
>>>>>
>>>>> *1. Install standard Karaf 4.0.5*
>>>>>
>>>>> *2. Replace org.ops4j.pax.logging.cfg with the following:*
>>>>>
>>>>> log4j.rootLogger=INFO, stdout
>>>>>
>>>>> # CONSOLE appender
>>>>> log4j.appender.stdout=org.apache.log4j.ConsoleAppender
>>>>> log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
>>>>> log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} | %-5.5p |
>>>>> %-16.16t | %-32.32c{1} | %-32.32C %4L | %m%n
>>>>> log4j.appender.stdout.threshold=ERROR
>>>>>
>>>>> # Windows event log
>>>>> log4j.appender.nteventlog=org.apache.log4j.nt.NTEventLogAppender
>>>>> log4j.appender.nteventlog.source=Test 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
>>>>>
>>>>> *3. Start Karaf: "bin\karaf clean"*
>>>>>
>>>>> This should work.
>>>>>
>>>>> *4. Exit Karaf*
>>>>>
>>>>> *5. Change the root looger line to:*
>>>>>
>>>>> log4j.rootLogger=INFO, stdout, nteventlog
>>>>>
>>>>> *6. Start Karaf again*
>>>>>
>>>>> I get the following error:
>>>>>
>>>>> 2016-07-04 15:05:39,534 | ERROR | s4j.pax.logging) | configadmin
>>>>>                | ?    ? | [org.osgi.service.log.LogService,
>>>>> org.knopflerfish.service.log.LogService,
>>>>> org.ops4j.pax.logging.PaxLoggingService,
>>>>> org.osgi.service.cm.ManagedService, id=12,
>>>>> bundle=6/mvn:org.ops4j.pax.logging/pax-logging-service/1.8.5]: Unexpected
>>>>> problem updating configuration org.ops4j.pax.logging
>>>>> java.lang.UnsatisfiedLinkError: no NTEventLogAppender in
>>>>> java.library.path
>>>>>         at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)
>>>>>         at java.lang.Runtime.loadLibrary0(Runtime.java:870)
>>>>>         at java.lang.System.loadLibrary(System.java:1122)
>>>>>         at
>>>>> org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:179)
>>>>>         at
>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>>>>>         at
>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>>>>>         at
>>>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>>>>>         at
>>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>>>>>         at java.lang.Class.newInstance(Class.java:442)
>>>>>         at
>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336)
>>>>>         at
>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)
>>>>>         at
>>>>> org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97)
>>>>>         at
>>>>> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)
>>>>>         at
>>>>> org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:615)
>>>>>         at
>>>>> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:502)
>>>>>         at
>>>>> org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)
>>>>>         at
>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)
>>>>>         at
>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)
>>>>>         at
>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)
>>>>>         at
>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)
>>>>>         at
>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)
>>>>>         at
>>>>> org.apache.felix.cm.impl.ConfigurationManager$UpdateConfiguration.run(ConfigurationManager.java:1753)
>>>>>         at
>>>>> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)
>>>>>         at
>>>>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)
>>>>>         at java.lang.Thread.run(Thread.java:745)
>>>>>
>>>>> This makes sense since I haven't provided the DLL yet.
>>>>>
>>>>> *7. Exit Karaf*
>>>>>
>>>>> *8. Put the file NTEventLogAppender.amd64.dll in KARAF_HOME/lib (I
>>>>> attach the file for 64 bit Windows)*
>>>>>
>>>>> *9. Start Karaf again*
>>>>>
>>>>> This works - no error messages. I take this as "proof" that the DLL
>>>>> has been successfully loaded.
>>>>>
>>>>> *10. Install pax-jetty:*
>>>>>
>>>>> feature:install pax-jetty
>>>>>
>>>>> I now get the following error:
>>>>>
>>>>> 2016-07-04 15:11:17,854 | ERROR | 4j.pax.logging]) | configadmin
>>>>>                | ?    ? | [org.osgi.service.log.LogService,
>>>>> org.knopflerfish.service.log.LogService,
>>>>> org.ops4j.pax.logging.PaxLoggingService,
>>>>> org.osgi.service.cm.ManagedService, id=126,
>>>>> bundle=6/mvn:org.ops4j.pax.logging/pax-logging-service/1.8.5]: Unexpected
>>>>> problem updating configuration org.ops4j.pax.logging
>>>>> java.lang.UnsatisfiedLinkError: no NTEventLogAppender in
>>>>> java.library.path
>>>>>         at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)
>>>>>         at java.lang.Runtime.loadLibrary0(Runtime.java:870)
>>>>>         at java.lang.System.loadLibrary(System.java:1122)
>>>>>         at
>>>>> org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:179)
>>>>>         at
>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>>>>>         at
>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>>>>>         at
>>>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>>>>>         at
>>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>>>>>         at java.lang.Class.newInstance(Class.java:442)
>>>>>         at
>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336)
>>>>>         at
>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)
>>>>>         at
>>>>> org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97)
>>>>>         at
>>>>> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)
>>>>>         at
>>>>> org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:615)
>>>>>         at
>>>>> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:502)
>>>>>         at
>>>>> org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)
>>>>>         at
>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)
>>>>>         at
>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)
>>>>>         at
>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)
>>>>>         at
>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)
>>>>>         at
>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)
>>>>>         at
>>>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.provide(ConfigurationManager.java:1444)
>>>>>         at
>>>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.run(ConfigurationManager.java:1400)
>>>>>         at
>>>>> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)
>>>>>         at
>>>>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)
>>>>>         at java.lang.Thread.run(Thread.java:745)
>>>>>
>>>>> Can anyone understand what is happening? First the DLL is loaded, but
>>>>> then when pax-jetty is installed it seems to try to load it again but fails.
>>>>>
>>>>> /Bengt
>>>>>
>>>>>
>>>>> 2016-07-01 9:24 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>>>>
>>>>>> Turned out not to be so easy to switch version of Pax-logging.
>>>>>>
>>>>>> I edited startup.properties.I also had to change version of
>>>>>> pax-url-aether to 2.3.0. However, it seems like
>>>>>> org.apache.karaf.features.core bundle requires a version of pax-url-aehter
>>>>>> that is at least 2.4. However, I still think that the results I got
>>>>>> indicates that the NTEventLogAppender works with Pax-logging 1.8.1 but not
>>>>>> with 1.8.5.
>>>>>>
>>>>>> Switching to Pax-logging 1.8.1 using Karaf 4.0.5 gives me the
>>>>>> following error message if I put the NTEventLogAppender.amd64.dll in the
>>>>>> %KARAF_HOME%\lib directory:
>>>>>>
>>>>>> ERROR: Bundle org.apache.karaf.features.core [9] Error starting
>>>>>> mvn:org.apache.karaf.features/org.apache.karaf.features.core/4.0.5
>>>>>> (org.osgi.framework.BundleException: Unable to resolve
>>>>>> org.apache.karaf.features.core [9](R 9.0): missing requirement
>>>>>> [org.apache.karaf.features.core [9](R 9.0)] osgi.wiring.package;
>>>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))
>>>>>> Unresolved requirements: [[org.apache.karaf.features.core [9](R 9.0)]
>>>>>> osgi.wiring.package;
>>>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))])
>>>>>> org.osgi.framework.BundleException: Unable to resolve
>>>>>> org.apache.karaf.features.core [9](R 9.0): missing requirement
>>>>>> [org.apache.karaf.features.core [9](R 9.0)] osgi.wiring.package;
>>>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))
>>>>>> Unresolved requirements: [[org.apache.karaf.features.core [9](R 9.0)]
>>>>>> osgi.wiring.package;
>>>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))]
>>>>>>         at
>>>>>> org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4111)
>>>>>>         at
>>>>>> org.apache.felix.framework.Felix.startBundle(Felix.java:2117)
>>>>>>         at
>>>>>> org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1371)
>>>>>>         at
>>>>>> org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
>>>>>>         at java.lang.Thread.run(Thread.java:745)
>>>>>>
>>>>>> ..and the following error messages if I do NOT put the
>>>>>> NTEventLogAppender.amd64.dll in the %KARAF_HOME%\lib directory:
>>>>>>
>>>>>> 2016-07-01 09:14:04,105 | ERROR | s4j.pax.logging) | configadmin
>>>>>>                  | ?    ? | [org.osgi.service.log.LogService,
>>>>>> org.knopflerfish.service.log.LogService,
>>>>>> org.ops4j.pax.logging.PaxLoggingService,
>>>>>> org.osgi.service.cm.ManagedService, id=12,
>>>>>> bundle=6/mvn:org.ops4j.pax.logging/pax-logging-service/1.8.1]: Unexpected
>>>>>> problem updating configuration org.ops4j.pax.logging
>>>>>> java.lang.UnsatisfiedLinkError: no NTEventLogAppender in
>>>>>> java.library.path
>>>>>>         at
>>>>>> java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)[:1.8.0_74]
>>>>>>         at java.lang.Runtime.loadLibrary0(Runtime.java:870)[:1.8.0_74]
>>>>>>         at java.lang.System.loadLibrary(System.java:1122)[:1.8.0_74]
>>>>>>         at
>>>>>> org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:179)
>>>>>>         at
>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>>>>>> Method)[:1.8.0_74]
>>>>>>         at
>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)[:1.8.0_74]
>>>>>>         at
>>>>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)[:1.8.0_74]
>>>>>>         at
>>>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:423)[:1.8.0_74]
>>>>>>         at java.lang.Class.newInstance(Class.java:442)[:1.8.0_74]
>>>>>>         at
>>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>>         at
>>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>>         at
>>>>>> org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>>         at
>>>>>> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>>         at
>>>>>> org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:639)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>>         at
>>>>>> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:504)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>>         at
>>>>>> org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>>         at
>>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>>         at
>>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>>         at
>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>         at
>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>         at
>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>         at
>>>>>> org.apache.felix.cm.impl.ConfigurationManager$UpdateConfiguration.run(ConfigurationManager.java:1753)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>         at
>>>>>> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>         at
>>>>>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>         at java.lang.Thread.run(Thread.java:745)[:1.8.0_74]
>>>>>> ERROR: Bundle org.apache.karaf.features.core [9] Error starting
>>>>>> mvn:org.apache.karaf.features/org.apache.karaf.features.core/4.0.5
>>>>>> (org.osgi.framework.BundleException: Unable to resolve
>>>>>> org.apache.karaf.features.core [9](R 9.0): missing requirement
>>>>>> [org.apache.karaf.features.core [9](R 9.0)] osgi.wiring.package;
>>>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))
>>>>>> Unresolved requirements: [[org.apache.karaf.features.core [9](R 9.0)]
>>>>>> osgi.wiring.package;
>>>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))])org.osgi.framework.BundleException:
>>>>>> Unable to resolve org.apache.karaf.features.core [9](R 9.0): missing
>>>>>> requirement [org.apache.karaf.features.core [9](R 9.0)]
>>>>>> osgi.wiring.package;
>>>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))
>>>>>> Unresolved requirements: [[org.apache.karaf.features.core [9](R 9.0)]
>>>>>> osgi.wiring.package;
>>>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))]
>>>>>>         at
>>>>>> org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4111)
>>>>>>         at
>>>>>> org.apache.felix.framework.Felix.startBundle(Felix.java:2117)
>>>>>>         at
>>>>>> org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1371)
>>>>>>         at
>>>>>> org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
>>>>>>         at java.lang.Thread.run(Thread.java:745)
>>>>>>
>>>>>> So, the DLL seems to be loaded and Pax-logging seems to work using
>>>>>> Pax-logging 1.8.1 but not using Pax-logging 1.8.5.
>>>>>>
>>>>>> I will re-post this conversation to the OOPS4J mailing list.
>>>>>>
>>>>>> /Bengt
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> 2016-07-01 8:55 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>>>>>
>>>>>>> OK - I guess I misunderstood this then.
>>>>>>>
>>>>>>> Looking in the POM's I now see that there are dependencies to both
>>>>>>> log4j 1.2.16 and log4j 2.x.
>>>>>>>
>>>>>>> I wonder then why the NTEventLogAppender can't be used in Karaf
>>>>>>> 4.0.5. For a while I thought it might be a java version problem. I now use
>>>>>>> Java 8 instead of Java 7 like I did before. But even if I run Karaf 4.0.5
>>>>>>> using Java 7 I still get the same problem.
>>>>>>>
>>>>>>> I will try to use Karaf 4.0.5 with Pax-logging 1.8.1 to see if it
>>>>>>> makes any difference. What is the best way to accomplish that?
>>>>>>>
>>>>>>> /Bengt
>>>>>>>
>>>>>>> 2016-06-30 16:54 GMT+02:00 Achim Nierbeck <bc...@googlemail.com>:
>>>>>>>
>>>>>>>> Hi Bengt,
>>>>>>>>
>>>>>>>> newer versions of Pax-Logging don't use log4j2 per default so this
>>>>>>>> should still work ...
>>>>>>>> the underlying impl is still log4j 1 unless someone changed it on a
>>>>>>>> minor version update ...
>>>>>>>>
>>>>>>>> regards, Achim
>>>>>>>>
>>>>>>>>
>>>>>>>> 2016-06-30 16:23 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>>>>>>>
>>>>>>>>> Thanks JB,
>>>>>>>>>
>>>>>>>>> Tried it though and no diffference.
>>>>>>>>>
>>>>>>>>> When investigating this it seems like newer versions of
>>>>>>>>> pax-logging uses log4j2. Unfortunately the NTEventLogAppender is
>>>>>>>>> incompatible with log4j2.
>>>>>>>>>
>>>>>>>>> I've found the project log4jna that seems to target this.
>>>>>>>>> Unfortunately I cannot find a released version that supports log4j2.
>>>>>>>>>
>>>>>>>>> Anyone else encountered this?
>>>>>>>>>
>>>>>>>>> /Bengt
>>>>>>>>>
>>>>>>>>> 2016-06-30 14:48 GMT+02:00 Jean-Baptiste Onofré <jb...@nanthrax.net>:
>>>>>>>>>
>>>>>>>>>> In Karaf 4, the dll should go in lib/ext.
>>>>>>>>>>
>>>>>>>>>> Regards
>>>>>>>>>> JB
>>>>>>>>>>
>>>>>>>>>> On 06/30/2016 02:16 PM, Bengt Rodehav wrote:
>>>>>>>>>>
>>>>>>>>>>> I have a feeling that I need to put the
>>>>>>>>>>> NTEventLogAppender.amd4.dll in
>>>>>>>>>>> another directory in Karaf 4.0.5 then in Karaf 2.4.1.
>>>>>>>>>>>
>>>>>>>>>>> I have always put it in the directory %KARAF_HOME%/lib which
>>>>>>>>>>> works for
>>>>>>>>>>> Karaf 2.4.1. Where should DLL's be put in Karaf 4.0.5?
>>>>>>>>>>>
>>>>>>>>>>> /Bengt
>>>>>>>>>>>
>>>>>>>>>>> 2016-06-29 17:37 GMT+02:00 Bengt Rodehav <bengt@rodehav.com
>>>>>>>>>>> <ma...@rodehav.com>>:
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>     I'm trying to upgrade from Karaf 2..1 to 4.0.5 and I run into
>>>>>>>>>>>     problems regarding NTEventLogAppender. I get the following
>>>>>>>>>>> on startup:
>>>>>>>>>>>
>>>>>>>>>>>     2016-06-29 17:16:05,354 | ERROR | 4j.pax.logging]) |
>>>>>>>>>>> configadmin
>>>>>>>>>>>                       | ?
>>>>>>>>>>>          ? | [org.osgi.service.log.LogService,
>>>>>>>>>>>     org.knopflerfish.service.log.LogService,
>>>>>>>>>>>     org.ops4j.pax.logging.PaxLoggingService,
>>>>>>>>>>>     org.osgi.service.cm.ManagedService, id=34,
>>>>>>>>>>>
>>>>>>>>>>> bundle=6/mvn:org.ops4j.pax.logging/pax-logging-service/1.8.5]:
>>>>>>>>>>>     Unexpected problem updating configuration
>>>>>>>>>>> org.ops4j.pax.logging
>>>>>>>>>>>     java.lang.UnsatisfiedLinkError: no NTEventLogAppender in
>>>>>>>>>>>     java.library.path
>>>>>>>>>>>              at
>>>>>>>>>>>
>>>>>>>>>>> java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)[:1.8.0_74]
>>>>>>>>>>>              at
>>>>>>>>>>> java.lang.Runtime.loadLibrary0(Runtime.java:870)[:1.8.0_74]
>>>>>>>>>>>              at
>>>>>>>>>>> java.lang.System.loadLibrary(System.java:1122)[:1.8.0_74]
>>>>>>>>>>>              at
>>>>>>>>>>>
>>>>>>>>>>> org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:179)
>>>>>>>>>>>              at
>>>>>>>>>>>     sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>>>>>>>>>>>     Method)[:1.8.0_74]
>>>>>>>>>>>              at
>>>>>>>>>>>
>>>>>>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)[:1.8.0_74]
>>>>>>>>>>>              at
>>>>>>>>>>>
>>>>>>>>>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)[:1.8.0_74]
>>>>>>>>>>>              at
>>>>>>>>>>>
>>>>>>>>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:423)[:1.8.0_74]
>>>>>>>>>>>              at
>>>>>>>>>>> java.lang.Class.newInstance(Class.java:442)[:1.8.0_74]
>>>>>>>>>>>              at
>>>>>>>>>>>
>>>>>>>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>>              at
>>>>>>>>>>>
>>>>>>>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>>              at
>>>>>>>>>>>
>>>>>>>>>>> org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>>              at
>>>>>>>>>>>
>>>>>>>>>>> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>>              at
>>>>>>>>>>>
>>>>>>>>>>> org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:639)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>>              at
>>>>>>>>>>>
>>>>>>>>>>> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:504)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>>              at
>>>>>>>>>>>
>>>>>>>>>>> org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>>              at
>>>>>>>>>>>
>>>>>>>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>>              at
>>>>>>>>>>>
>>>>>>>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>>              at
>>>>>>>>>>>
>>>>>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>>>              at
>>>>>>>>>>>
>>>>>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>>>              at
>>>>>>>>>>>
>>>>>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>>>              at
>>>>>>>>>>>
>>>>>>>>>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.provide(ConfigurationManager.java:1444)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>>>              at
>>>>>>>>>>>
>>>>>>>>>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.run(ConfigurationManager.java:1400)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>>>              at
>>>>>>>>>>>
>>>>>>>>>>> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>>>              at
>>>>>>>>>>>
>>>>>>>>>>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>>>              at java.lang.Thread.run(Thread.java:745)[:1.8.0_74]
>>>>>>>>>>>
>>>>>>>>>>>     Like I did on Karaf 2.4.1, I have put the
>>>>>>>>>>>     file NTEventLogAppender.amd64.dll in the "lib" directory
>>>>>>>>>>> under
>>>>>>>>>>>     Karaf. It has the version 1.2.16.1.
>>>>>>>>>>>
>>>>>>>>>>>     Does anyone know how to get the NTEventLogAppender to work
>>>>>>>>>>> with
>>>>>>>>>>>     Karaf 4.0.5?
>>>>>>>>>>>
>>>>>>>>>>>     /Bengt
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Jean-Baptiste Onofré
>>>>>>>>>> jbonofre@apache.org
>>>>>>>>>> http://blog.nanthrax.net
>>>>>>>>>> Talend - http://www.talend.com
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>>
>>>>>>>> Apache Member
>>>>>>>> Apache Karaf <http://karaf.apache.org/> Committer & PMC
>>>>>>>> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/>
>>>>>>>> Committer & Project Lead
>>>>>>>> blog <http://notizblog.nierbeck.de/>
>>>>>>>> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>
>>>>>>>>
>>>>>>>> Software Architect / Project Manager / Scrum Master
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>>
>> --
>>
>> Apache Member
>> Apache Karaf <http://karaf.apache.org/> Committer & PMC
>> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer
>> & Project Lead
>> blog <http://notizblog.nierbeck.de/>
>> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>
>>
>> Software Architect / Project Manager / Scrum Master
>>
>>
>

Re: Log4j NTEventLogAppender in Karaf 4.0.5

Posted by Bengt Rodehav <be...@rodehav.com>.
OK - thanks Achim,

/Bengt

2016-07-06 22:08 GMT+02:00 Achim Nierbeck <bc...@googlemail.com>:

> Hi Bengt,
>
> I'll try to find out if one of the bundles in that feature depends on
> log4j2 ... but I'm not aware of such a dependency.
>
> Your suspicion about dynamic loading of DLLs is correct in case of the
> location of the dll is inside of a bundle and does have dependencies to
> another dll. If it's a dll loaded via the root classloader that shouldn't
> be of an issue.
>
> regards, Achim
>
>
> 2016-07-04 16:04 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>
>> Another theory: Looking at the stack trace this seems to be triggered by
>> a configuration update. Could the problem be that Pax-logging is trying to
>> load the DLL again and failing since it is already loaded? Perhaps the
>> initial load works but subsequent configuration updates does not?
>>
>> I tried to verify this...
>>
>> After successful start of Karaf (after step 9 in my previous post), I
>> edit org.ops4j.pas.logging.cfg (by changing the root logger between INFO
>> and DEBUG). This causes no error.
>>
>> But after having installed feature pax-jetty (after step 10 in my
>> previous post), every change in org.ops4j.pas.logging.cfg causes the same
>> error to appear (the stack trace included in my previous post).
>>
>> It's as if installing the pax-jetty feature takes gives control of
>> org.ops4j.pas.logging.cfg to someone who cannot load the DLL. I have no
>> idea how this could happen.
>>
>> Anyone else has an idea?
>>
>> /Bengt
>>
>>
>>
>>
>>
>>
>>
>> /Bengt
>>
>> 2016-07-04 15:51 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>
>>> A theory: Could one of the bundles installed by feature pax-jetty be
>>> using log4j 2.x directly without using Pax-logging? If so, would it too try
>>> to read the log4j configuration file? I guess it would fail to load the DLL
>>> since it is probably not compatible with log4j 2.x.
>>>
>>> Could this happen? If so, how can I find out which bundle?
>>>
>>> /Bengt
>>>
>>> 2016-07-04 15:15 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>>
>>>> Back to the Karaf mailing list....
>>>>
>>>> I can actually get this problem on a standard vanilla Karaf 4.0.5. It
>>>> seems to be triggered when installing the feature pax-jetty.
>>>>
>>>> *1. Install standard Karaf 4.0.5*
>>>>
>>>> *2. Replace org.ops4j.pax.logging.cfg with the following:*
>>>>
>>>> log4j.rootLogger=INFO, stdout
>>>>
>>>> # CONSOLE appender
>>>> log4j.appender.stdout=org.apache.log4j.ConsoleAppender
>>>> log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
>>>> log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} | %-5.5p |
>>>> %-16.16t | %-32.32c{1} | %-32.32C %4L | %m%n
>>>> log4j.appender.stdout.threshold=ERROR
>>>>
>>>> # Windows event log
>>>> log4j.appender.nteventlog=org.apache.log4j.nt.NTEventLogAppender
>>>> log4j.appender.nteventlog.source=Test 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
>>>>
>>>> *3. Start Karaf: "bin\karaf clean"*
>>>>
>>>> This should work.
>>>>
>>>> *4. Exit Karaf*
>>>>
>>>> *5. Change the root looger line to:*
>>>>
>>>> log4j.rootLogger=INFO, stdout, nteventlog
>>>>
>>>> *6. Start Karaf again*
>>>>
>>>> I get the following error:
>>>>
>>>> 2016-07-04 15:05:39,534 | ERROR | s4j.pax.logging) | configadmin
>>>>                | ?    ? | [org.osgi.service.log.LogService,
>>>> org.knopflerfish.service.log.LogService,
>>>> org.ops4j.pax.logging.PaxLoggingService,
>>>> org.osgi.service.cm.ManagedService, id=12,
>>>> bundle=6/mvn:org.ops4j.pax.logging/pax-logging-service/1.8.5]: Unexpected
>>>> problem updating configuration org.ops4j.pax.logging
>>>> java.lang.UnsatisfiedLinkError: no NTEventLogAppender in
>>>> java.library.path
>>>>         at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)
>>>>         at java.lang.Runtime.loadLibrary0(Runtime.java:870)
>>>>         at java.lang.System.loadLibrary(System.java:1122)
>>>>         at
>>>> org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:179)
>>>>         at
>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>>>>         at
>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>>>>         at
>>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>>>>         at
>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>>>>         at java.lang.Class.newInstance(Class.java:442)
>>>>         at
>>>> org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336)
>>>>         at
>>>> org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)
>>>>         at
>>>> org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97)
>>>>         at
>>>> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)
>>>>         at
>>>> org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:615)
>>>>         at
>>>> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:502)
>>>>         at
>>>> org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)
>>>>         at
>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)
>>>>         at
>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)
>>>>         at
>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)
>>>>         at
>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)
>>>>         at
>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)
>>>>         at
>>>> org.apache.felix.cm.impl.ConfigurationManager$UpdateConfiguration.run(ConfigurationManager.java:1753)
>>>>         at
>>>> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)
>>>>         at
>>>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)
>>>>         at java.lang.Thread.run(Thread.java:745)
>>>>
>>>> This makes sense since I haven't provided the DLL yet.
>>>>
>>>> *7. Exit Karaf*
>>>>
>>>> *8. Put the file NTEventLogAppender.amd64.dll in KARAF_HOME/lib (I
>>>> attach the file for 64 bit Windows)*
>>>>
>>>> *9. Start Karaf again*
>>>>
>>>> This works - no error messages. I take this as "proof" that the DLL has
>>>> been successfully loaded.
>>>>
>>>> *10. Install pax-jetty:*
>>>>
>>>> feature:install pax-jetty
>>>>
>>>> I now get the following error:
>>>>
>>>> 2016-07-04 15:11:17,854 | ERROR | 4j.pax.logging]) | configadmin
>>>>                | ?    ? | [org.osgi.service.log.LogService,
>>>> org.knopflerfish.service.log.LogService,
>>>> org.ops4j.pax.logging.PaxLoggingService,
>>>> org.osgi.service.cm.ManagedService, id=126,
>>>> bundle=6/mvn:org.ops4j.pax.logging/pax-logging-service/1.8.5]: Unexpected
>>>> problem updating configuration org.ops4j.pax.logging
>>>> java.lang.UnsatisfiedLinkError: no NTEventLogAppender in
>>>> java.library.path
>>>>         at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)
>>>>         at java.lang.Runtime.loadLibrary0(Runtime.java:870)
>>>>         at java.lang.System.loadLibrary(System.java:1122)
>>>>         at
>>>> org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:179)
>>>>         at
>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>>>>         at
>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>>>>         at
>>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>>>>         at
>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>>>>         at java.lang.Class.newInstance(Class.java:442)
>>>>         at
>>>> org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336)
>>>>         at
>>>> org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)
>>>>         at
>>>> org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97)
>>>>         at
>>>> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)
>>>>         at
>>>> org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:615)
>>>>         at
>>>> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:502)
>>>>         at
>>>> org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)
>>>>         at
>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)
>>>>         at
>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)
>>>>         at
>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)
>>>>         at
>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)
>>>>         at
>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)
>>>>         at
>>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.provide(ConfigurationManager.java:1444)
>>>>         at
>>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.run(ConfigurationManager.java:1400)
>>>>         at
>>>> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)
>>>>         at
>>>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)
>>>>         at java.lang.Thread.run(Thread.java:745)
>>>>
>>>> Can anyone understand what is happening? First the DLL is loaded, but
>>>> then when pax-jetty is installed it seems to try to load it again but fails.
>>>>
>>>> /Bengt
>>>>
>>>>
>>>> 2016-07-01 9:24 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>>>
>>>>> Turned out not to be so easy to switch version of Pax-logging.
>>>>>
>>>>> I edited startup.properties.I also had to change version of
>>>>> pax-url-aether to 2.3.0. However, it seems like
>>>>> org.apache.karaf.features.core bundle requires a version of pax-url-aehter
>>>>> that is at least 2.4. However, I still think that the results I got
>>>>> indicates that the NTEventLogAppender works with Pax-logging 1.8.1 but not
>>>>> with 1.8.5.
>>>>>
>>>>> Switching to Pax-logging 1.8.1 using Karaf 4.0.5 gives me the
>>>>> following error message if I put the NTEventLogAppender.amd64.dll in the
>>>>> %KARAF_HOME%\lib directory:
>>>>>
>>>>> ERROR: Bundle org.apache.karaf.features.core [9] Error starting
>>>>> mvn:org.apache.karaf.features/org.apache.karaf.features.core/4.0.5
>>>>> (org.osgi.framework.BundleException: Unable to resolve
>>>>> org.apache.karaf.features.core [9](R 9.0): missing requirement
>>>>> [org.apache.karaf.features.core [9](R 9.0)] osgi.wiring.package;
>>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))
>>>>> Unresolved requirements: [[org.apache.karaf.features.core [9](R 9.0)]
>>>>> osgi.wiring.package;
>>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))])
>>>>> org.osgi.framework.BundleException: Unable to resolve
>>>>> org.apache.karaf.features.core [9](R 9.0): missing requirement
>>>>> [org.apache.karaf.features.core [9](R 9.0)] osgi.wiring.package;
>>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))
>>>>> Unresolved requirements: [[org.apache.karaf.features.core [9](R 9.0)]
>>>>> osgi.wiring.package;
>>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))]
>>>>>         at
>>>>> org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4111)
>>>>>         at
>>>>> org.apache.felix.framework.Felix.startBundle(Felix.java:2117)
>>>>>         at
>>>>> org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1371)
>>>>>         at
>>>>> org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
>>>>>         at java.lang.Thread.run(Thread.java:745)
>>>>>
>>>>> ..and the following error messages if I do NOT put the
>>>>> NTEventLogAppender.amd64.dll in the %KARAF_HOME%\lib directory:
>>>>>
>>>>> 2016-07-01 09:14:04,105 | ERROR | s4j.pax.logging) | configadmin
>>>>>                | ?    ? | [org.osgi.service.log.LogService,
>>>>> org.knopflerfish.service.log.LogService,
>>>>> org.ops4j.pax.logging.PaxLoggingService,
>>>>> org.osgi.service.cm.ManagedService, id=12,
>>>>> bundle=6/mvn:org.ops4j.pax.logging/pax-logging-service/1.8.1]: Unexpected
>>>>> problem updating configuration org.ops4j.pax.logging
>>>>> java.lang.UnsatisfiedLinkError: no NTEventLogAppender in
>>>>> java.library.path
>>>>>         at
>>>>> java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)[:1.8.0_74]
>>>>>         at java.lang.Runtime.loadLibrary0(Runtime.java:870)[:1.8.0_74]
>>>>>         at java.lang.System.loadLibrary(System.java:1122)[:1.8.0_74]
>>>>>         at
>>>>> org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:179)
>>>>>         at
>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>>>>> Method)[:1.8.0_74]
>>>>>         at
>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)[:1.8.0_74]
>>>>>         at
>>>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)[:1.8.0_74]
>>>>>         at
>>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:423)[:1.8.0_74]
>>>>>         at java.lang.Class.newInstance(Class.java:442)[:1.8.0_74]
>>>>>         at
>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>         at
>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>         at
>>>>> org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>         at
>>>>> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>         at
>>>>> org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:639)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>         at
>>>>> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:504)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>         at
>>>>> org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>         at
>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>         at
>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>>         at
>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)[7:org.apache.felix.configadmin:1.8.8]
>>>>>         at
>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)[7:org.apache.felix.configadmin:1.8.8]
>>>>>         at
>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)[7:org.apache.felix.configadmin:1.8.8]
>>>>>         at
>>>>> org.apache.felix.cm.impl.ConfigurationManager$UpdateConfiguration.run(ConfigurationManager.java:1753)[7:org.apache.felix.configadmin:1.8.8]
>>>>>         at
>>>>> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)[7:org.apache.felix.configadmin:1.8.8]
>>>>>         at
>>>>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)[7:org.apache.felix.configadmin:1.8.8]
>>>>>         at java.lang.Thread.run(Thread.java:745)[:1.8.0_74]
>>>>> ERROR: Bundle org.apache.karaf.features.core [9] Error starting
>>>>> mvn:org.apache.karaf.features/org.apache.karaf.features.core/4.0.5
>>>>> (org.osgi.framework.BundleException: Unable to resolve
>>>>> org.apache.karaf.features.core [9](R 9.0): missing requirement
>>>>> [org.apache.karaf.features.core [9](R 9.0)] osgi.wiring.package;
>>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))
>>>>> Unresolved requirements: [[org.apache.karaf.features.core [9](R 9.0)]
>>>>> osgi.wiring.package;
>>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))])org.osgi.framework.BundleException:
>>>>> Unable to resolve org.apache.karaf.features.core [9](R 9.0): missing
>>>>> requirement [org.apache.karaf.features.core [9](R 9.0)]
>>>>> osgi.wiring.package;
>>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))
>>>>> Unresolved requirements: [[org.apache.karaf.features.core [9](R 9.0)]
>>>>> osgi.wiring.package;
>>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))]
>>>>>         at
>>>>> org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4111)
>>>>>         at
>>>>> org.apache.felix.framework.Felix.startBundle(Felix.java:2117)
>>>>>         at
>>>>> org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1371)
>>>>>         at
>>>>> org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
>>>>>         at java.lang.Thread.run(Thread.java:745)
>>>>>
>>>>> So, the DLL seems to be loaded and Pax-logging seems to work using
>>>>> Pax-logging 1.8.1 but not using Pax-logging 1.8.5.
>>>>>
>>>>> I will re-post this conversation to the OOPS4J mailing list.
>>>>>
>>>>> /Bengt
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> 2016-07-01 8:55 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>>>>
>>>>>> OK - I guess I misunderstood this then.
>>>>>>
>>>>>> Looking in the POM's I now see that there are dependencies to both
>>>>>> log4j 1.2.16 and log4j 2.x.
>>>>>>
>>>>>> I wonder then why the NTEventLogAppender can't be used in Karaf
>>>>>> 4.0.5. For a while I thought it might be a java version problem. I now use
>>>>>> Java 8 instead of Java 7 like I did before. But even if I run Karaf 4.0.5
>>>>>> using Java 7 I still get the same problem.
>>>>>>
>>>>>> I will try to use Karaf 4.0.5 with Pax-logging 1.8.1 to see if it
>>>>>> makes any difference. What is the best way to accomplish that?
>>>>>>
>>>>>> /Bengt
>>>>>>
>>>>>> 2016-06-30 16:54 GMT+02:00 Achim Nierbeck <bc...@googlemail.com>:
>>>>>>
>>>>>>> Hi Bengt,
>>>>>>>
>>>>>>> newer versions of Pax-Logging don't use log4j2 per default so this
>>>>>>> should still work ...
>>>>>>> the underlying impl is still log4j 1 unless someone changed it on a
>>>>>>> minor version update ...
>>>>>>>
>>>>>>> regards, Achim
>>>>>>>
>>>>>>>
>>>>>>> 2016-06-30 16:23 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>>>>>>
>>>>>>>> Thanks JB,
>>>>>>>>
>>>>>>>> Tried it though and no diffference.
>>>>>>>>
>>>>>>>> When investigating this it seems like newer versions of pax-logging
>>>>>>>> uses log4j2. Unfortunately the NTEventLogAppender is incompatible
>>>>>>>> with log4j2.
>>>>>>>>
>>>>>>>> I've found the project log4jna that seems to target this.
>>>>>>>> Unfortunately I cannot find a released version that supports log4j2.
>>>>>>>>
>>>>>>>> Anyone else encountered this?
>>>>>>>>
>>>>>>>> /Bengt
>>>>>>>>
>>>>>>>> 2016-06-30 14:48 GMT+02:00 Jean-Baptiste Onofré <jb...@nanthrax.net>:
>>>>>>>>
>>>>>>>>> In Karaf 4, the dll should go in lib/ext.
>>>>>>>>>
>>>>>>>>> Regards
>>>>>>>>> JB
>>>>>>>>>
>>>>>>>>> On 06/30/2016 02:16 PM, Bengt Rodehav wrote:
>>>>>>>>>
>>>>>>>>>> I have a feeling that I need to put the
>>>>>>>>>> NTEventLogAppender.amd4.dll in
>>>>>>>>>> another directory in Karaf 4.0.5 then in Karaf 2.4.1.
>>>>>>>>>>
>>>>>>>>>> I have always put it in the directory %KARAF_HOME%/lib which
>>>>>>>>>> works for
>>>>>>>>>> Karaf 2.4.1. Where should DLL's be put in Karaf 4.0.5?
>>>>>>>>>>
>>>>>>>>>> /Bengt
>>>>>>>>>>
>>>>>>>>>> 2016-06-29 17:37 GMT+02:00 Bengt Rodehav <bengt@rodehav.com
>>>>>>>>>> <ma...@rodehav.com>>:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>     I'm trying to upgrade from Karaf 2..1 to 4.0.5 and I run into
>>>>>>>>>>     problems regarding NTEventLogAppender. I get the following on
>>>>>>>>>> startup:
>>>>>>>>>>
>>>>>>>>>>     2016-06-29 17:16:05,354 | ERROR | 4j.pax.logging]) |
>>>>>>>>>> configadmin
>>>>>>>>>>                       | ?
>>>>>>>>>>          ? | [org.osgi.service.log.LogService,
>>>>>>>>>>     org.knopflerfish.service.log.LogService,
>>>>>>>>>>     org.ops4j.pax.logging.PaxLoggingService,
>>>>>>>>>>     org.osgi.service.cm.ManagedService, id=34,
>>>>>>>>>>     bundle=6/mvn:org.ops4j.pax.logging/pax-logging-service/1.8.5]:
>>>>>>>>>>     Unexpected problem updating configuration
>>>>>>>>>> org.ops4j.pax.logging
>>>>>>>>>>     java.lang.UnsatisfiedLinkError: no NTEventLogAppender in
>>>>>>>>>>     java.library.path
>>>>>>>>>>              at
>>>>>>>>>>
>>>>>>>>>> java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)[:1.8.0_74]
>>>>>>>>>>              at
>>>>>>>>>> java.lang.Runtime.loadLibrary0(Runtime.java:870)[:1.8.0_74]
>>>>>>>>>>              at
>>>>>>>>>> java.lang.System.loadLibrary(System.java:1122)[:1.8.0_74]
>>>>>>>>>>              at
>>>>>>>>>>
>>>>>>>>>> org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:179)
>>>>>>>>>>              at
>>>>>>>>>>     sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>>>>>>>>>>     Method)[:1.8.0_74]
>>>>>>>>>>              at
>>>>>>>>>>
>>>>>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)[:1.8.0_74]
>>>>>>>>>>              at
>>>>>>>>>>
>>>>>>>>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)[:1.8.0_74]
>>>>>>>>>>              at
>>>>>>>>>>
>>>>>>>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:423)[:1.8.0_74]
>>>>>>>>>>              at
>>>>>>>>>> java.lang.Class.newInstance(Class.java:442)[:1.8.0_74]
>>>>>>>>>>              at
>>>>>>>>>>
>>>>>>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>              at
>>>>>>>>>>
>>>>>>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>              at
>>>>>>>>>>
>>>>>>>>>> org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>              at
>>>>>>>>>>
>>>>>>>>>> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>              at
>>>>>>>>>>
>>>>>>>>>> org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:639)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>              at
>>>>>>>>>>
>>>>>>>>>> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:504)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>              at
>>>>>>>>>>
>>>>>>>>>> org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>              at
>>>>>>>>>>
>>>>>>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>              at
>>>>>>>>>>
>>>>>>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>>              at
>>>>>>>>>>
>>>>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>>              at
>>>>>>>>>>
>>>>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>>              at
>>>>>>>>>>
>>>>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>>              at
>>>>>>>>>>
>>>>>>>>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.provide(ConfigurationManager.java:1444)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>>              at
>>>>>>>>>>
>>>>>>>>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.run(ConfigurationManager.java:1400)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>>              at
>>>>>>>>>>
>>>>>>>>>> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>>              at
>>>>>>>>>>
>>>>>>>>>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>>              at java.lang.Thread.run(Thread.java:745)[:1.8.0_74]
>>>>>>>>>>
>>>>>>>>>>     Like I did on Karaf 2.4.1, I have put the
>>>>>>>>>>     file NTEventLogAppender.amd64.dll in the "lib" directory under
>>>>>>>>>>     Karaf. It has the version 1.2.16.1.
>>>>>>>>>>
>>>>>>>>>>     Does anyone know how to get the NTEventLogAppender to work
>>>>>>>>>> with
>>>>>>>>>>     Karaf 4.0.5?
>>>>>>>>>>
>>>>>>>>>>     /Bengt
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Jean-Baptiste Onofré
>>>>>>>>> jbonofre@apache.org
>>>>>>>>> http://blog.nanthrax.net
>>>>>>>>> Talend - http://www.talend.com
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>>
>>>>>>> Apache Member
>>>>>>> Apache Karaf <http://karaf.apache.org/> Committer & PMC
>>>>>>> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/>
>>>>>>> Committer & Project Lead
>>>>>>> blog <http://notizblog.nierbeck.de/>
>>>>>>> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>
>>>>>>>
>>>>>>> Software Architect / Project Manager / Scrum Master
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
>
> --
>
> Apache Member
> Apache Karaf <http://karaf.apache.org/> Committer & PMC
> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer &
> Project Lead
> blog <http://notizblog.nierbeck.de/>
> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>
>
> Software Architect / Project Manager / Scrum Master
>
>

Re: Log4j NTEventLogAppender in Karaf 4.0.5

Posted by Achim Nierbeck <bc...@googlemail.com>.
Hi Bengt,

I'll try to find out if one of the bundles in that feature depends on
log4j2 ... but I'm not aware of such a dependency.

Your suspicion about dynamic loading of DLLs is correct in case of the
location of the dll is inside of a bundle and does have dependencies to
another dll. If it's a dll loaded via the root classloader that shouldn't
be of an issue.

regards, Achim


2016-07-04 16:04 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:

> Another theory: Looking at the stack trace this seems to be triggered by a
> configuration update. Could the problem be that Pax-logging is trying to
> load the DLL again and failing since it is already loaded? Perhaps the
> initial load works but subsequent configuration updates does not?
>
> I tried to verify this...
>
> After successful start of Karaf (after step 9 in my previous post), I edit
> org.ops4j.pas.logging.cfg (by changing the root logger between INFO and
> DEBUG). This causes no error.
>
> But after having installed feature pax-jetty (after step 10 in my previous
> post), every change in org.ops4j.pas.logging.cfg causes the same error to
> appear (the stack trace included in my previous post).
>
> It's as if installing the pax-jetty feature takes gives control of
> org.ops4j.pas.logging.cfg to someone who cannot load the DLL. I have no
> idea how this could happen.
>
> Anyone else has an idea?
>
> /Bengt
>
>
>
>
>
>
>
> /Bengt
>
> 2016-07-04 15:51 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>
>> A theory: Could one of the bundles installed by feature pax-jetty be
>> using log4j 2.x directly without using Pax-logging? If so, would it too try
>> to read the log4j configuration file? I guess it would fail to load the DLL
>> since it is probably not compatible with log4j 2.x.
>>
>> Could this happen? If so, how can I find out which bundle?
>>
>> /Bengt
>>
>> 2016-07-04 15:15 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>
>>> Back to the Karaf mailing list....
>>>
>>> I can actually get this problem on a standard vanilla Karaf 4.0.5. It
>>> seems to be triggered when installing the feature pax-jetty.
>>>
>>> *1. Install standard Karaf 4.0.5*
>>>
>>> *2. Replace org.ops4j.pax.logging.cfg with the following:*
>>>
>>> log4j.rootLogger=INFO, stdout
>>>
>>> # CONSOLE appender
>>> log4j.appender.stdout=org.apache.log4j.ConsoleAppender
>>> log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
>>> log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} | %-5.5p |
>>> %-16.16t | %-32.32c{1} | %-32.32C %4L | %m%n
>>> log4j.appender.stdout.threshold=ERROR
>>>
>>> # Windows event log
>>> log4j.appender.nteventlog=org.apache.log4j.nt.NTEventLogAppender
>>> log4j.appender.nteventlog.source=Test 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
>>>
>>> *3. Start Karaf: "bin\karaf clean"*
>>>
>>> This should work.
>>>
>>> *4. Exit Karaf*
>>>
>>> *5. Change the root looger line to:*
>>>
>>> log4j.rootLogger=INFO, stdout, nteventlog
>>>
>>> *6. Start Karaf again*
>>>
>>> I get the following error:
>>>
>>> 2016-07-04 15:05:39,534 | ERROR | s4j.pax.logging) | configadmin
>>>              | ?    ? | [org.osgi.service.log.LogService,
>>> org.knopflerfish.service.log.LogService,
>>> org.ops4j.pax.logging.PaxLoggingService,
>>> org.osgi.service.cm.ManagedService, id=12,
>>> bundle=6/mvn:org.ops4j.pax.logging/pax-logging-service/1.8.5]: Unexpected
>>> problem updating configuration org.ops4j.pax.logging
>>> java.lang.UnsatisfiedLinkError: no NTEventLogAppender in
>>> java.library.path
>>>         at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)
>>>         at java.lang.Runtime.loadLibrary0(Runtime.java:870)
>>>         at java.lang.System.loadLibrary(System.java:1122)
>>>         at
>>> org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:179)
>>>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>>> Method)
>>>         at
>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>>>         at
>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>>>         at
>>> java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>>>         at java.lang.Class.newInstance(Class.java:442)
>>>         at
>>> org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336)
>>>         at
>>> org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)
>>>         at
>>> org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97)
>>>         at
>>> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)
>>>         at
>>> org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:615)
>>>         at
>>> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:502)
>>>         at
>>> org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)
>>>         at
>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)
>>>         at
>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)
>>>         at
>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)
>>>         at
>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)
>>>         at
>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)
>>>         at
>>> org.apache.felix.cm.impl.ConfigurationManager$UpdateConfiguration.run(ConfigurationManager.java:1753)
>>>         at
>>> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)
>>>         at
>>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)
>>>         at java.lang.Thread.run(Thread.java:745)
>>>
>>> This makes sense since I haven't provided the DLL yet.
>>>
>>> *7. Exit Karaf*
>>>
>>> *8. Put the file NTEventLogAppender.amd64.dll in KARAF_HOME/lib (I
>>> attach the file for 64 bit Windows)*
>>>
>>> *9. Start Karaf again*
>>>
>>> This works - no error messages. I take this as "proof" that the DLL has
>>> been successfully loaded.
>>>
>>> *10. Install pax-jetty:*
>>>
>>> feature:install pax-jetty
>>>
>>> I now get the following error:
>>>
>>> 2016-07-04 15:11:17,854 | ERROR | 4j.pax.logging]) | configadmin
>>>              | ?    ? | [org.osgi.service.log.LogService,
>>> org.knopflerfish.service.log.LogService,
>>> org.ops4j.pax.logging.PaxLoggingService,
>>> org.osgi.service.cm.ManagedService, id=126,
>>> bundle=6/mvn:org.ops4j.pax.logging/pax-logging-service/1.8.5]: Unexpected
>>> problem updating configuration org.ops4j.pax.logging
>>> java.lang.UnsatisfiedLinkError: no NTEventLogAppender in
>>> java.library.path
>>>         at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)
>>>         at java.lang.Runtime.loadLibrary0(Runtime.java:870)
>>>         at java.lang.System.loadLibrary(System.java:1122)
>>>         at
>>> org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:179)
>>>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>>> Method)
>>>         at
>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>>>         at
>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>>>         at
>>> java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>>>         at java.lang.Class.newInstance(Class.java:442)
>>>         at
>>> org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336)
>>>         at
>>> org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)
>>>         at
>>> org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97)
>>>         at
>>> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)
>>>         at
>>> org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:615)
>>>         at
>>> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:502)
>>>         at
>>> org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)
>>>         at
>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)
>>>         at
>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)
>>>         at
>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)
>>>         at
>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)
>>>         at
>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)
>>>         at
>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.provide(ConfigurationManager.java:1444)
>>>         at
>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.run(ConfigurationManager.java:1400)
>>>         at
>>> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)
>>>         at
>>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)
>>>         at java.lang.Thread.run(Thread.java:745)
>>>
>>> Can anyone understand what is happening? First the DLL is loaded, but
>>> then when pax-jetty is installed it seems to try to load it again but fails.
>>>
>>> /Bengt
>>>
>>>
>>> 2016-07-01 9:24 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>>
>>>> Turned out not to be so easy to switch version of Pax-logging.
>>>>
>>>> I edited startup.properties.I also had to change version of
>>>> pax-url-aether to 2.3.0. However, it seems like
>>>> org.apache.karaf.features.core bundle requires a version of pax-url-aehter
>>>> that is at least 2.4. However, I still think that the results I got
>>>> indicates that the NTEventLogAppender works with Pax-logging 1.8.1 but not
>>>> with 1.8.5.
>>>>
>>>> Switching to Pax-logging 1.8.1 using Karaf 4.0.5 gives me the following
>>>> error message if I put the NTEventLogAppender.amd64.dll in the
>>>> %KARAF_HOME%\lib directory:
>>>>
>>>> ERROR: Bundle org.apache.karaf.features.core [9] Error starting
>>>> mvn:org.apache.karaf.features/org.apache.karaf.features.core/4.0.5
>>>> (org.osgi.framework.BundleException: Unable to resolve
>>>> org.apache.karaf.features.core [9](R 9.0): missing requirement
>>>> [org.apache.karaf.features.core [9](R 9.0)] osgi.wiring.package;
>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))
>>>> Unresolved requirements: [[org.apache.karaf.features.core [9](R 9.0)]
>>>> osgi.wiring.package;
>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))])
>>>> org.osgi.framework.BundleException: Unable to resolve
>>>> org.apache.karaf.features.core [9](R 9.0): missing requirement
>>>> [org.apache.karaf.features.core [9](R 9.0)] osgi.wiring.package;
>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))
>>>> Unresolved requirements: [[org.apache.karaf.features.core [9](R 9.0)]
>>>> osgi.wiring.package;
>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))]
>>>>         at
>>>> org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4111)
>>>>         at org.apache.felix.framework.Felix.startBundle(Felix.java:2117)
>>>>         at
>>>> org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1371)
>>>>         at
>>>> org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
>>>>         at java.lang.Thread.run(Thread.java:745)
>>>>
>>>> ..and the following error messages if I do NOT put the
>>>> NTEventLogAppender.amd64.dll in the %KARAF_HOME%\lib directory:
>>>>
>>>> 2016-07-01 09:14:04,105 | ERROR | s4j.pax.logging) | configadmin
>>>>                | ?    ? | [org.osgi.service.log.LogService,
>>>> org.knopflerfish.service.log.LogService,
>>>> org.ops4j.pax.logging.PaxLoggingService,
>>>> org.osgi.service.cm.ManagedService, id=12,
>>>> bundle=6/mvn:org.ops4j.pax.logging/pax-logging-service/1.8.1]: Unexpected
>>>> problem updating configuration org.ops4j.pax.logging
>>>> java.lang.UnsatisfiedLinkError: no NTEventLogAppender in
>>>> java.library.path
>>>>         at
>>>> java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)[:1.8.0_74]
>>>>         at java.lang.Runtime.loadLibrary0(Runtime.java:870)[:1.8.0_74]
>>>>         at java.lang.System.loadLibrary(System.java:1122)[:1.8.0_74]
>>>>         at
>>>> org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:179)
>>>>         at
>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>>>> Method)[:1.8.0_74]
>>>>         at
>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)[:1.8.0_74]
>>>>         at
>>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)[:1.8.0_74]
>>>>         at
>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:423)[:1.8.0_74]
>>>>         at java.lang.Class.newInstance(Class.java:442)[:1.8.0_74]
>>>>         at
>>>> org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>         at
>>>> org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>         at
>>>> org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>         at
>>>> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>         at
>>>> org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:639)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>         at
>>>> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:504)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>         at
>>>> org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>         at
>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>         at
>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>>         at
>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)[7:org.apache.felix.configadmin:1.8.8]
>>>>         at
>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)[7:org.apache.felix.configadmin:1.8.8]
>>>>         at
>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)[7:org.apache.felix.configadmin:1.8.8]
>>>>         at
>>>> org.apache.felix.cm.impl.ConfigurationManager$UpdateConfiguration.run(ConfigurationManager.java:1753)[7:org.apache.felix.configadmin:1.8.8]
>>>>         at
>>>> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)[7:org.apache.felix.configadmin:1.8.8]
>>>>         at
>>>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)[7:org.apache.felix.configadmin:1.8.8]
>>>>         at java.lang.Thread.run(Thread.java:745)[:1.8.0_74]
>>>> ERROR: Bundle org.apache.karaf.features.core [9] Error starting
>>>> mvn:org.apache.karaf.features/org.apache.karaf.features.core/4.0.5
>>>> (org.osgi.framework.BundleException: Unable to resolve
>>>> org.apache.karaf.features.core [9](R 9.0): missing requirement
>>>> [org.apache.karaf.features.core [9](R 9.0)] osgi.wiring.package;
>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))
>>>> Unresolved requirements: [[org.apache.karaf.features.core [9](R 9.0)]
>>>> osgi.wiring.package;
>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))])org.osgi.framework.BundleException:
>>>> Unable to resolve org.apache.karaf.features.core [9](R 9.0): missing
>>>> requirement [org.apache.karaf.features.core [9](R 9.0)]
>>>> osgi.wiring.package;
>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))
>>>> Unresolved requirements: [[org.apache.karaf.features.core [9](R 9.0)]
>>>> osgi.wiring.package;
>>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))]
>>>>         at
>>>> org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4111)
>>>>         at org.apache.felix.framework.Felix.startBundle(Felix.java:2117)
>>>>         at
>>>> org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1371)
>>>>         at
>>>> org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
>>>>         at java.lang.Thread.run(Thread.java:745)
>>>>
>>>> So, the DLL seems to be loaded and Pax-logging seems to work using
>>>> Pax-logging 1.8.1 but not using Pax-logging 1.8.5.
>>>>
>>>> I will re-post this conversation to the OOPS4J mailing list.
>>>>
>>>> /Bengt
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> 2016-07-01 8:55 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>>>
>>>>> OK - I guess I misunderstood this then.
>>>>>
>>>>> Looking in the POM's I now see that there are dependencies to both
>>>>> log4j 1.2.16 and log4j 2.x.
>>>>>
>>>>> I wonder then why the NTEventLogAppender can't be used in Karaf
>>>>> 4.0.5. For a while I thought it might be a java version problem. I now use
>>>>> Java 8 instead of Java 7 like I did before. But even if I run Karaf 4.0.5
>>>>> using Java 7 I still get the same problem.
>>>>>
>>>>> I will try to use Karaf 4.0.5 with Pax-logging 1.8.1 to see if it
>>>>> makes any difference. What is the best way to accomplish that?
>>>>>
>>>>> /Bengt
>>>>>
>>>>> 2016-06-30 16:54 GMT+02:00 Achim Nierbeck <bc...@googlemail.com>:
>>>>>
>>>>>> Hi Bengt,
>>>>>>
>>>>>> newer versions of Pax-Logging don't use log4j2 per default so this
>>>>>> should still work ...
>>>>>> the underlying impl is still log4j 1 unless someone changed it on a
>>>>>> minor version update ...
>>>>>>
>>>>>> regards, Achim
>>>>>>
>>>>>>
>>>>>> 2016-06-30 16:23 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>>>>>
>>>>>>> Thanks JB,
>>>>>>>
>>>>>>> Tried it though and no diffference.
>>>>>>>
>>>>>>> When investigating this it seems like newer versions of pax-logging
>>>>>>> uses log4j2. Unfortunately the NTEventLogAppender is incompatible
>>>>>>> with log4j2.
>>>>>>>
>>>>>>> I've found the project log4jna that seems to target this.
>>>>>>> Unfortunately I cannot find a released version that supports log4j2.
>>>>>>>
>>>>>>> Anyone else encountered this?
>>>>>>>
>>>>>>> /Bengt
>>>>>>>
>>>>>>> 2016-06-30 14:48 GMT+02:00 Jean-Baptiste Onofré <jb...@nanthrax.net>:
>>>>>>>
>>>>>>>> In Karaf 4, the dll should go in lib/ext.
>>>>>>>>
>>>>>>>> Regards
>>>>>>>> JB
>>>>>>>>
>>>>>>>> On 06/30/2016 02:16 PM, Bengt Rodehav wrote:
>>>>>>>>
>>>>>>>>> I have a feeling that I need to put the
>>>>>>>>> NTEventLogAppender.amd4.dll in
>>>>>>>>> another directory in Karaf 4.0.5 then in Karaf 2.4.1.
>>>>>>>>>
>>>>>>>>> I have always put it in the directory %KARAF_HOME%/lib which works
>>>>>>>>> for
>>>>>>>>> Karaf 2.4.1. Where should DLL's be put in Karaf 4.0.5?
>>>>>>>>>
>>>>>>>>> /Bengt
>>>>>>>>>
>>>>>>>>> 2016-06-29 17:37 GMT+02:00 Bengt Rodehav <bengt@rodehav.com
>>>>>>>>> <ma...@rodehav.com>>:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>     I'm trying to upgrade from Karaf 2..1 to 4.0.5 and I run into
>>>>>>>>>     problems regarding NTEventLogAppender. I get the following on
>>>>>>>>> startup:
>>>>>>>>>
>>>>>>>>>     2016-06-29 17:16:05,354 | ERROR | 4j.pax.logging]) |
>>>>>>>>> configadmin
>>>>>>>>>                       | ?
>>>>>>>>>          ? | [org.osgi.service.log.LogService,
>>>>>>>>>     org.knopflerfish.service.log.LogService,
>>>>>>>>>     org.ops4j.pax.logging.PaxLoggingService,
>>>>>>>>>     org.osgi.service.cm.ManagedService, id=34,
>>>>>>>>>     bundle=6/mvn:org.ops4j.pax.logging/pax-logging-service/1.8.5]:
>>>>>>>>>     Unexpected problem updating configuration org.ops4j.pax.logging
>>>>>>>>>     java.lang.UnsatisfiedLinkError: no NTEventLogAppender in
>>>>>>>>>     java.library.path
>>>>>>>>>              at
>>>>>>>>>
>>>>>>>>> java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)[:1.8.0_74]
>>>>>>>>>              at
>>>>>>>>> java.lang.Runtime.loadLibrary0(Runtime.java:870)[:1.8.0_74]
>>>>>>>>>              at
>>>>>>>>> java.lang.System.loadLibrary(System.java:1122)[:1.8.0_74]
>>>>>>>>>              at
>>>>>>>>>
>>>>>>>>> org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:179)
>>>>>>>>>              at
>>>>>>>>>     sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>>>>>>>>>     Method)[:1.8.0_74]
>>>>>>>>>              at
>>>>>>>>>
>>>>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)[:1.8.0_74]
>>>>>>>>>              at
>>>>>>>>>
>>>>>>>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)[:1.8.0_74]
>>>>>>>>>              at
>>>>>>>>>
>>>>>>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:423)[:1.8.0_74]
>>>>>>>>>              at
>>>>>>>>> java.lang.Class.newInstance(Class.java:442)[:1.8.0_74]
>>>>>>>>>              at
>>>>>>>>>
>>>>>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>              at
>>>>>>>>>
>>>>>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>              at
>>>>>>>>>
>>>>>>>>> org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>              at
>>>>>>>>>
>>>>>>>>> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>              at
>>>>>>>>>
>>>>>>>>> org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:639)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>              at
>>>>>>>>>
>>>>>>>>> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:504)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>              at
>>>>>>>>>
>>>>>>>>> org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>              at
>>>>>>>>>
>>>>>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>              at
>>>>>>>>>
>>>>>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>>              at
>>>>>>>>>
>>>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>              at
>>>>>>>>>
>>>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>              at
>>>>>>>>>
>>>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>              at
>>>>>>>>>
>>>>>>>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.provide(ConfigurationManager.java:1444)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>              at
>>>>>>>>>
>>>>>>>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.run(ConfigurationManager.java:1400)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>              at
>>>>>>>>>
>>>>>>>>> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>              at
>>>>>>>>>
>>>>>>>>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>>              at java.lang.Thread.run(Thread.java:745)[:1.8.0_74]
>>>>>>>>>
>>>>>>>>>     Like I did on Karaf 2.4.1, I have put the
>>>>>>>>>     file NTEventLogAppender.amd64.dll in the "lib" directory under
>>>>>>>>>     Karaf. It has the version 1.2.16.1.
>>>>>>>>>
>>>>>>>>>     Does anyone know how to get the NTEventLogAppender to work with
>>>>>>>>>     Karaf 4.0.5?
>>>>>>>>>
>>>>>>>>>     /Bengt
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>> --
>>>>>>>> Jean-Baptiste Onofré
>>>>>>>> jbonofre@apache.org
>>>>>>>> http://blog.nanthrax.net
>>>>>>>> Talend - http://www.talend.com
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>>
>>>>>> Apache Member
>>>>>> Apache Karaf <http://karaf.apache.org/> Committer & PMC
>>>>>> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/>
>>>>>> Committer & Project Lead
>>>>>> blog <http://notizblog.nierbeck.de/>
>>>>>> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>
>>>>>>
>>>>>> Software Architect / Project Manager / Scrum Master
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>


-- 

Apache Member
Apache Karaf <http://karaf.apache.org/> Committer & PMC
OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer &
Project Lead
blog <http://notizblog.nierbeck.de/>
Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>

Software Architect / Project Manager / Scrum Master

Re: Log4j NTEventLogAppender in Karaf 4.0.5

Posted by Bengt Rodehav <be...@rodehav.com>.
Another theory: Looking at the stack trace this seems to be triggered by a
configuration update. Could the problem be that Pax-logging is trying to
load the DLL again and failing since it is already loaded? Perhaps the
initial load works but subsequent configuration updates does not?

I tried to verify this...

After successful start of Karaf (after step 9 in my previous post), I edit
org.ops4j.pas.logging.cfg (by changing the root logger between INFO and
DEBUG). This causes no error.

But after having installed feature pax-jetty (after step 10 in my previous
post), every change in org.ops4j.pas.logging.cfg causes the same error to
appear (the stack trace included in my previous post).

It's as if installing the pax-jetty feature takes gives control of
org.ops4j.pas.logging.cfg to someone who cannot load the DLL. I have no
idea how this could happen.

Anyone else has an idea?

/Bengt







/Bengt

2016-07-04 15:51 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:

> A theory: Could one of the bundles installed by feature pax-jetty be using
> log4j 2.x directly without using Pax-logging? If so, would it too try to
> read the log4j configuration file? I guess it would fail to load the DLL
> since it is probably not compatible with log4j 2.x.
>
> Could this happen? If so, how can I find out which bundle?
>
> /Bengt
>
> 2016-07-04 15:15 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>
>> Back to the Karaf mailing list....
>>
>> I can actually get this problem on a standard vanilla Karaf 4.0.5. It
>> seems to be triggered when installing the feature pax-jetty.
>>
>> *1. Install standard Karaf 4.0.5*
>>
>> *2. Replace org.ops4j.pax.logging.cfg with the following:*
>>
>> log4j.rootLogger=INFO, stdout
>>
>> # CONSOLE appender
>> log4j.appender.stdout=org.apache.log4j.ConsoleAppender
>> log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
>> log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} | %-5.5p |
>> %-16.16t | %-32.32c{1} | %-32.32C %4L | %m%n
>> log4j.appender.stdout.threshold=ERROR
>>
>> # Windows event log
>> log4j.appender.nteventlog=org.apache.log4j.nt.NTEventLogAppender
>> log4j.appender.nteventlog.source=Test 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
>>
>> *3. Start Karaf: "bin\karaf clean"*
>>
>> This should work.
>>
>> *4. Exit Karaf*
>>
>> *5. Change the root looger line to:*
>>
>> log4j.rootLogger=INFO, stdout, nteventlog
>>
>> *6. Start Karaf again*
>>
>> I get the following error:
>>
>> 2016-07-04 15:05:39,534 | ERROR | s4j.pax.logging) | configadmin
>>              | ?    ? | [org.osgi.service.log.LogService,
>> org.knopflerfish.service.log.LogService,
>> org.ops4j.pax.logging.PaxLoggingService,
>> org.osgi.service.cm.ManagedService, id=12,
>> bundle=6/mvn:org.ops4j.pax.logging/pax-logging-service/1.8.5]: Unexpected
>> problem updating configuration org.ops4j.pax.logging
>> java.lang.UnsatisfiedLinkError: no NTEventLogAppender in java.library.path
>>         at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)
>>         at java.lang.Runtime.loadLibrary0(Runtime.java:870)
>>         at java.lang.System.loadLibrary(System.java:1122)
>>         at
>> org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:179)
>>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>> Method)
>>         at
>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>>         at
>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>>         at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>>         at java.lang.Class.newInstance(Class.java:442)
>>         at
>> org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336)
>>         at
>> org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)
>>         at
>> org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97)
>>         at
>> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)
>>         at
>> org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:615)
>>         at
>> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:502)
>>         at
>> org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)
>>         at
>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)
>>         at
>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)
>>         at
>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)
>>         at
>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)
>>         at
>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)
>>         at
>> org.apache.felix.cm.impl.ConfigurationManager$UpdateConfiguration.run(ConfigurationManager.java:1753)
>>         at
>> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)
>>         at
>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)
>>         at java.lang.Thread.run(Thread.java:745)
>>
>> This makes sense since I haven't provided the DLL yet.
>>
>> *7. Exit Karaf*
>>
>> *8. Put the file NTEventLogAppender.amd64.dll in KARAF_HOME/lib (I attach
>> the file for 64 bit Windows)*
>>
>> *9. Start Karaf again*
>>
>> This works - no error messages. I take this as "proof" that the DLL has
>> been successfully loaded.
>>
>> *10. Install pax-jetty:*
>>
>> feature:install pax-jetty
>>
>> I now get the following error:
>>
>> 2016-07-04 15:11:17,854 | ERROR | 4j.pax.logging]) | configadmin
>>              | ?    ? | [org.osgi.service.log.LogService,
>> org.knopflerfish.service.log.LogService,
>> org.ops4j.pax.logging.PaxLoggingService,
>> org.osgi.service.cm.ManagedService, id=126,
>> bundle=6/mvn:org.ops4j.pax.logging/pax-logging-service/1.8.5]: Unexpected
>> problem updating configuration org.ops4j.pax.logging
>> java.lang.UnsatisfiedLinkError: no NTEventLogAppender in java.library.path
>>         at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)
>>         at java.lang.Runtime.loadLibrary0(Runtime.java:870)
>>         at java.lang.System.loadLibrary(System.java:1122)
>>         at
>> org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:179)
>>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>> Method)
>>         at
>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>>         at
>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>>         at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>>         at java.lang.Class.newInstance(Class.java:442)
>>         at
>> org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336)
>>         at
>> org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)
>>         at
>> org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97)
>>         at
>> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)
>>         at
>> org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:615)
>>         at
>> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:502)
>>         at
>> org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)
>>         at
>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)
>>         at
>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)
>>         at
>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)
>>         at
>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)
>>         at
>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)
>>         at
>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.provide(ConfigurationManager.java:1444)
>>         at
>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.run(ConfigurationManager.java:1400)
>>         at
>> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)
>>         at
>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)
>>         at java.lang.Thread.run(Thread.java:745)
>>
>> Can anyone understand what is happening? First the DLL is loaded, but
>> then when pax-jetty is installed it seems to try to load it again but fails.
>>
>> /Bengt
>>
>>
>> 2016-07-01 9:24 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>
>>> Turned out not to be so easy to switch version of Pax-logging.
>>>
>>> I edited startup.properties.I also had to change version of
>>> pax-url-aether to 2.3.0. However, it seems like
>>> org.apache.karaf.features.core bundle requires a version of pax-url-aehter
>>> that is at least 2.4. However, I still think that the results I got
>>> indicates that the NTEventLogAppender works with Pax-logging 1.8.1 but not
>>> with 1.8.5.
>>>
>>> Switching to Pax-logging 1.8.1 using Karaf 4.0.5 gives me the following
>>> error message if I put the NTEventLogAppender.amd64.dll in the
>>> %KARAF_HOME%\lib directory:
>>>
>>> ERROR: Bundle org.apache.karaf.features.core [9] Error starting
>>> mvn:org.apache.karaf.features/org.apache.karaf.features.core/4.0.5
>>> (org.osgi.framework.BundleException: Unable to resolve
>>> org.apache.karaf.features.core [9](R 9.0): missing requirement
>>> [org.apache.karaf.features.core [9](R 9.0)] osgi.wiring.package;
>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))
>>> Unresolved requirements: [[org.apache.karaf.features.core [9](R 9.0)]
>>> osgi.wiring.package;
>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))])
>>> org.osgi.framework.BundleException: Unable to resolve
>>> org.apache.karaf.features.core [9](R 9.0): missing requirement
>>> [org.apache.karaf.features.core [9](R 9.0)] osgi.wiring.package;
>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))
>>> Unresolved requirements: [[org.apache.karaf.features.core [9](R 9.0)]
>>> osgi.wiring.package;
>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))]
>>>         at
>>> org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4111)
>>>         at org.apache.felix.framework.Felix.startBundle(Felix.java:2117)
>>>         at
>>> org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1371)
>>>         at
>>> org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
>>>         at java.lang.Thread.run(Thread.java:745)
>>>
>>> ..and the following error messages if I do NOT put the
>>> NTEventLogAppender.amd64.dll in the %KARAF_HOME%\lib directory:
>>>
>>> 2016-07-01 09:14:04,105 | ERROR | s4j.pax.logging) | configadmin
>>>              | ?    ? | [org.osgi.service.log.LogService,
>>> org.knopflerfish.service.log.LogService,
>>> org.ops4j.pax.logging.PaxLoggingService,
>>> org.osgi.service.cm.ManagedService, id=12,
>>> bundle=6/mvn:org.ops4j.pax.logging/pax-logging-service/1.8.1]: Unexpected
>>> problem updating configuration org.ops4j.pax.logging
>>> java.lang.UnsatisfiedLinkError: no NTEventLogAppender in
>>> java.library.path
>>>         at
>>> java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)[:1.8.0_74]
>>>         at java.lang.Runtime.loadLibrary0(Runtime.java:870)[:1.8.0_74]
>>>         at java.lang.System.loadLibrary(System.java:1122)[:1.8.0_74]
>>>         at
>>> org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:179)
>>>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>>> Method)[:1.8.0_74]
>>>         at
>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)[:1.8.0_74]
>>>         at
>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)[:1.8.0_74]
>>>         at
>>> java.lang.reflect.Constructor.newInstance(Constructor.java:423)[:1.8.0_74]
>>>         at java.lang.Class.newInstance(Class.java:442)[:1.8.0_74]
>>>         at
>>> org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>         at
>>> org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>         at
>>> org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>         at
>>> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>         at
>>> org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:639)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>         at
>>> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:504)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>         at
>>> org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>         at
>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>         at
>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>>         at
>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)[7:org.apache.felix.configadmin:1.8.8]
>>>         at
>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)[7:org.apache.felix.configadmin:1.8.8]
>>>         at
>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)[7:org.apache.felix.configadmin:1.8.8]
>>>         at
>>> org.apache.felix.cm.impl.ConfigurationManager$UpdateConfiguration.run(ConfigurationManager.java:1753)[7:org.apache.felix.configadmin:1.8.8]
>>>         at
>>> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)[7:org.apache.felix.configadmin:1.8.8]
>>>         at
>>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)[7:org.apache.felix.configadmin:1.8.8]
>>>         at java.lang.Thread.run(Thread.java:745)[:1.8.0_74]
>>> ERROR: Bundle org.apache.karaf.features.core [9] Error starting
>>> mvn:org.apache.karaf.features/org.apache.karaf.features.core/4.0.5
>>> (org.osgi.framework.BundleException: Unable to resolve
>>> org.apache.karaf.features.core [9](R 9.0): missing requirement
>>> [org.apache.karaf.features.core [9](R 9.0)] osgi.wiring.package;
>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))
>>> Unresolved requirements: [[org.apache.karaf.features.core [9](R 9.0)]
>>> osgi.wiring.package;
>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))])org.osgi.framework.BundleException:
>>> Unable to resolve org.apache.karaf.features.core [9](R 9.0): missing
>>> requirement [org.apache.karaf.features.core [9](R 9.0)]
>>> osgi.wiring.package;
>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))
>>> Unresolved requirements: [[org.apache.karaf.features.core [9](R 9.0)]
>>> osgi.wiring.package;
>>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))]
>>>         at
>>> org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4111)
>>>         at org.apache.felix.framework.Felix.startBundle(Felix.java:2117)
>>>         at
>>> org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1371)
>>>         at
>>> org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
>>>         at java.lang.Thread.run(Thread.java:745)
>>>
>>> So, the DLL seems to be loaded and Pax-logging seems to work using
>>> Pax-logging 1.8.1 but not using Pax-logging 1.8.5.
>>>
>>> I will re-post this conversation to the OOPS4J mailing list.
>>>
>>> /Bengt
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> 2016-07-01 8:55 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>>
>>>> OK - I guess I misunderstood this then.
>>>>
>>>> Looking in the POM's I now see that there are dependencies to both
>>>> log4j 1.2.16 and log4j 2.x.
>>>>
>>>> I wonder then why the NTEventLogAppender can't be used in Karaf 4.0.5.
>>>> For a while I thought it might be a java version problem. I now use Java 8
>>>> instead of Java 7 like I did before. But even if I run Karaf 4.0.5 using
>>>> Java 7 I still get the same problem.
>>>>
>>>> I will try to use Karaf 4.0.5 with Pax-logging 1.8.1 to see if it makes
>>>> any difference. What is the best way to accomplish that?
>>>>
>>>> /Bengt
>>>>
>>>> 2016-06-30 16:54 GMT+02:00 Achim Nierbeck <bc...@googlemail.com>:
>>>>
>>>>> Hi Bengt,
>>>>>
>>>>> newer versions of Pax-Logging don't use log4j2 per default so this
>>>>> should still work ...
>>>>> the underlying impl is still log4j 1 unless someone changed it on a
>>>>> minor version update ...
>>>>>
>>>>> regards, Achim
>>>>>
>>>>>
>>>>> 2016-06-30 16:23 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>>>>
>>>>>> Thanks JB,
>>>>>>
>>>>>> Tried it though and no diffference.
>>>>>>
>>>>>> When investigating this it seems like newer versions of pax-logging
>>>>>> uses log4j2. Unfortunately the NTEventLogAppender is incompatible
>>>>>> with log4j2.
>>>>>>
>>>>>> I've found the project log4jna that seems to target this.
>>>>>> Unfortunately I cannot find a released version that supports log4j2.
>>>>>>
>>>>>> Anyone else encountered this?
>>>>>>
>>>>>> /Bengt
>>>>>>
>>>>>> 2016-06-30 14:48 GMT+02:00 Jean-Baptiste Onofré <jb...@nanthrax.net>:
>>>>>>
>>>>>>> In Karaf 4, the dll should go in lib/ext.
>>>>>>>
>>>>>>> Regards
>>>>>>> JB
>>>>>>>
>>>>>>> On 06/30/2016 02:16 PM, Bengt Rodehav wrote:
>>>>>>>
>>>>>>>> I have a feeling that I need to put the NTEventLogAppender.amd4.dll
>>>>>>>> in
>>>>>>>> another directory in Karaf 4.0.5 then in Karaf 2.4.1.
>>>>>>>>
>>>>>>>> I have always put it in the directory %KARAF_HOME%/lib which works
>>>>>>>> for
>>>>>>>> Karaf 2.4.1. Where should DLL's be put in Karaf 4.0.5?
>>>>>>>>
>>>>>>>> /Bengt
>>>>>>>>
>>>>>>>> 2016-06-29 17:37 GMT+02:00 Bengt Rodehav <bengt@rodehav.com
>>>>>>>> <ma...@rodehav.com>>:
>>>>>>>>
>>>>>>>>
>>>>>>>>     I'm trying to upgrade from Karaf 2..1 to 4.0.5 and I run into
>>>>>>>>     problems regarding NTEventLogAppender. I get the following on
>>>>>>>> startup:
>>>>>>>>
>>>>>>>>     2016-06-29 17:16:05,354 | ERROR | 4j.pax.logging]) | configadmin
>>>>>>>>                       | ?
>>>>>>>>          ? | [org.osgi.service.log.LogService,
>>>>>>>>     org.knopflerfish.service.log.LogService,
>>>>>>>>     org.ops4j.pax.logging.PaxLoggingService,
>>>>>>>>     org.osgi.service.cm.ManagedService, id=34,
>>>>>>>>     bundle=6/mvn:org.ops4j.pax.logging/pax-logging-service/1.8.5]:
>>>>>>>>     Unexpected problem updating configuration org.ops4j.pax.logging
>>>>>>>>     java.lang.UnsatisfiedLinkError: no NTEventLogAppender in
>>>>>>>>     java.library.path
>>>>>>>>              at
>>>>>>>>
>>>>>>>> java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)[:1.8.0_74]
>>>>>>>>              at
>>>>>>>> java.lang.Runtime.loadLibrary0(Runtime.java:870)[:1.8.0_74]
>>>>>>>>              at
>>>>>>>> java.lang.System.loadLibrary(System.java:1122)[:1.8.0_74]
>>>>>>>>              at
>>>>>>>>
>>>>>>>> org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:179)
>>>>>>>>              at
>>>>>>>>     sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>>>>>>>>     Method)[:1.8.0_74]
>>>>>>>>              at
>>>>>>>>
>>>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)[:1.8.0_74]
>>>>>>>>              at
>>>>>>>>
>>>>>>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)[:1.8.0_74]
>>>>>>>>              at
>>>>>>>>
>>>>>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:423)[:1.8.0_74]
>>>>>>>>              at
>>>>>>>> java.lang.Class.newInstance(Class.java:442)[:1.8.0_74]
>>>>>>>>              at
>>>>>>>>
>>>>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>              at
>>>>>>>>
>>>>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>              at
>>>>>>>>
>>>>>>>> org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>              at
>>>>>>>>
>>>>>>>> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>              at
>>>>>>>>
>>>>>>>> org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:639)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>              at
>>>>>>>>
>>>>>>>> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:504)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>              at
>>>>>>>>
>>>>>>>> org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>              at
>>>>>>>>
>>>>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>              at
>>>>>>>>
>>>>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>>              at
>>>>>>>>
>>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>              at
>>>>>>>>
>>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>              at
>>>>>>>>
>>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>              at
>>>>>>>>
>>>>>>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.provide(ConfigurationManager.java:1444)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>              at
>>>>>>>>
>>>>>>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.run(ConfigurationManager.java:1400)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>              at
>>>>>>>>
>>>>>>>> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>              at
>>>>>>>>
>>>>>>>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>>              at java.lang.Thread.run(Thread.java:745)[:1.8.0_74]
>>>>>>>>
>>>>>>>>     Like I did on Karaf 2.4.1, I have put the
>>>>>>>>     file NTEventLogAppender.amd64.dll in the "lib" directory under
>>>>>>>>     Karaf. It has the version 1.2.16.1.
>>>>>>>>
>>>>>>>>     Does anyone know how to get the NTEventLogAppender to work with
>>>>>>>>     Karaf 4.0.5?
>>>>>>>>
>>>>>>>>     /Bengt
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>> --
>>>>>>> Jean-Baptiste Onofré
>>>>>>> jbonofre@apache.org
>>>>>>> http://blog.nanthrax.net
>>>>>>> Talend - http://www.talend.com
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> Apache Member
>>>>> Apache Karaf <http://karaf.apache.org/> Committer & PMC
>>>>> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/>
>>>>> Committer & Project Lead
>>>>> blog <http://notizblog.nierbeck.de/>
>>>>> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>
>>>>>
>>>>> Software Architect / Project Manager / Scrum Master
>>>>>
>>>>>
>>>>
>>>
>>
>

Re: Log4j NTEventLogAppender in Karaf 4.0.5

Posted by Bengt Rodehav <be...@rodehav.com>.
A theory: Could one of the bundles installed by feature pax-jetty be using
log4j 2.x directly without using Pax-logging? If so, would it too try to
read the log4j configuration file? I guess it would fail to load the DLL
since it is probably not compatible with log4j 2.x.

Could this happen? If so, how can I find out which bundle?

/Bengt

2016-07-04 15:15 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:

> Back to the Karaf mailing list....
>
> I can actually get this problem on a standard vanilla Karaf 4.0.5. It
> seems to be triggered when installing the feature pax-jetty.
>
> *1. Install standard Karaf 4.0.5*
>
> *2. Replace org.ops4j.pax.logging.cfg with the following:*
>
> log4j.rootLogger=INFO, stdout
>
> # CONSOLE appender
> log4j.appender.stdout=org.apache.log4j.ConsoleAppender
> log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
> log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} | %-5.5p |
> %-16.16t | %-32.32c{1} | %-32.32C %4L | %m%n
> log4j.appender.stdout.threshold=ERROR
>
> # Windows event log
> log4j.appender.nteventlog=org.apache.log4j.nt.NTEventLogAppender
> log4j.appender.nteventlog.source=Test 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
>
> *3. Start Karaf: "bin\karaf clean"*
>
> This should work.
>
> *4. Exit Karaf*
>
> *5. Change the root looger line to:*
>
> log4j.rootLogger=INFO, stdout, nteventlog
>
> *6. Start Karaf again*
>
> I get the following error:
>
> 2016-07-04 15:05:39,534 | ERROR | s4j.pax.logging) | configadmin
>            | ?    ? | [org.osgi.service.log.LogService,
> org.knopflerfish.service.log.LogService,
> org.ops4j.pax.logging.PaxLoggingService,
> org.osgi.service.cm.ManagedService, id=12,
> bundle=6/mvn:org.ops4j.pax.logging/pax-logging-service/1.8.5]: Unexpected
> problem updating configuration org.ops4j.pax.logging
> java.lang.UnsatisfiedLinkError: no NTEventLogAppender in java.library.path
>         at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)
>         at java.lang.Runtime.loadLibrary0(Runtime.java:870)
>         at java.lang.System.loadLibrary(System.java:1122)
>         at
> org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:179)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> Method)
>         at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>         at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>         at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>         at java.lang.Class.newInstance(Class.java:442)
>         at
> org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336)
>         at
> org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)
>         at
> org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97)
>         at
> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)
>         at
> org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:615)
>         at
> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:502)
>         at
> org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)
>         at
> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)
>         at
> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)
>         at
> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)
>         at
> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)
>         at
> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)
>         at
> org.apache.felix.cm.impl.ConfigurationManager$UpdateConfiguration.run(ConfigurationManager.java:1753)
>         at
> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)
>         at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)
>         at java.lang.Thread.run(Thread.java:745)
>
> This makes sense since I haven't provided the DLL yet.
>
> *7. Exit Karaf*
>
> *8. Put the file NTEventLogAppender.amd64.dll in KARAF_HOME/lib (I attach
> the file for 64 bit Windows)*
>
> *9. Start Karaf again*
>
> This works - no error messages. I take this as "proof" that the DLL has
> been successfully loaded.
>
> *10. Install pax-jetty:*
>
> feature:install pax-jetty
>
> I now get the following error:
>
> 2016-07-04 15:11:17,854 | ERROR | 4j.pax.logging]) | configadmin
>            | ?    ? | [org.osgi.service.log.LogService,
> org.knopflerfish.service.log.LogService,
> org.ops4j.pax.logging.PaxLoggingService,
> org.osgi.service.cm.ManagedService, id=126,
> bundle=6/mvn:org.ops4j.pax.logging/pax-logging-service/1.8.5]: Unexpected
> problem updating configuration org.ops4j.pax.logging
> java.lang.UnsatisfiedLinkError: no NTEventLogAppender in java.library.path
>         at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)
>         at java.lang.Runtime.loadLibrary0(Runtime.java:870)
>         at java.lang.System.loadLibrary(System.java:1122)
>         at
> org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:179)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> Method)
>         at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>         at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>         at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>         at java.lang.Class.newInstance(Class.java:442)
>         at
> org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336)
>         at
> org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)
>         at
> org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97)
>         at
> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)
>         at
> org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:615)
>         at
> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:502)
>         at
> org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)
>         at
> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)
>         at
> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)
>         at
> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)
>         at
> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)
>         at
> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)
>         at
> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.provide(ConfigurationManager.java:1444)
>         at
> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.run(ConfigurationManager.java:1400)
>         at
> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)
>         at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)
>         at java.lang.Thread.run(Thread.java:745)
>
> Can anyone understand what is happening? First the DLL is loaded, but then
> when pax-jetty is installed it seems to try to load it again but fails.
>
> /Bengt
>
>
> 2016-07-01 9:24 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>
>> Turned out not to be so easy to switch version of Pax-logging.
>>
>> I edited startup.properties.I also had to change version of
>> pax-url-aether to 2.3.0. However, it seems like
>> org.apache.karaf.features.core bundle requires a version of pax-url-aehter
>> that is at least 2.4. However, I still think that the results I got
>> indicates that the NTEventLogAppender works with Pax-logging 1.8.1 but not
>> with 1.8.5.
>>
>> Switching to Pax-logging 1.8.1 using Karaf 4.0.5 gives me the following
>> error message if I put the NTEventLogAppender.amd64.dll in the
>> %KARAF_HOME%\lib directory:
>>
>> ERROR: Bundle org.apache.karaf.features.core [9] Error starting
>> mvn:org.apache.karaf.features/org.apache.karaf.features.core/4.0.5
>> (org.osgi.framework.BundleException: Unable to resolve
>> org.apache.karaf.features.core [9](R 9.0): missing requirement
>> [org.apache.karaf.features.core [9](R 9.0)] osgi.wiring.package;
>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))
>> Unresolved requirements: [[org.apache.karaf.features.core [9](R 9.0)]
>> osgi.wiring.package;
>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))])
>> org.osgi.framework.BundleException: Unable to resolve
>> org.apache.karaf.features.core [9](R 9.0): missing requirement
>> [org.apache.karaf.features.core [9](R 9.0)] osgi.wiring.package;
>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))
>> Unresolved requirements: [[org.apache.karaf.features.core [9](R 9.0)]
>> osgi.wiring.package;
>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))]
>>         at
>> org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4111)
>>         at org.apache.felix.framework.Felix.startBundle(Felix.java:2117)
>>         at
>> org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1371)
>>         at
>> org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
>>         at java.lang.Thread.run(Thread.java:745)
>>
>> ..and the following error messages if I do NOT put the
>> NTEventLogAppender.amd64.dll in the %KARAF_HOME%\lib directory:
>>
>> 2016-07-01 09:14:04,105 | ERROR | s4j.pax.logging) | configadmin
>>              | ?    ? | [org.osgi.service.log.LogService,
>> org.knopflerfish.service.log.LogService,
>> org.ops4j.pax.logging.PaxLoggingService,
>> org.osgi.service.cm.ManagedService, id=12,
>> bundle=6/mvn:org.ops4j.pax.logging/pax-logging-service/1.8.1]: Unexpected
>> problem updating configuration org.ops4j.pax.logging
>> java.lang.UnsatisfiedLinkError: no NTEventLogAppender in java.library.path
>>         at
>> java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)[:1.8.0_74]
>>         at java.lang.Runtime.loadLibrary0(Runtime.java:870)[:1.8.0_74]
>>         at java.lang.System.loadLibrary(System.java:1122)[:1.8.0_74]
>>         at
>> org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:179)
>>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>> Method)[:1.8.0_74]
>>         at
>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)[:1.8.0_74]
>>         at
>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)[:1.8.0_74]
>>         at
>> java.lang.reflect.Constructor.newInstance(Constructor.java:423)[:1.8.0_74]
>>         at java.lang.Class.newInstance(Class.java:442)[:1.8.0_74]
>>         at
>> org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>         at
>> org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>         at
>> org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>         at
>> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>         at
>> org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:639)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>         at
>> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:504)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>         at
>> org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>         at
>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>         at
>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
>>         at
>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)[7:org.apache.felix.configadmin:1.8.8]
>>         at
>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)[7:org.apache.felix.configadmin:1.8.8]
>>         at
>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)[7:org.apache.felix.configadmin:1.8.8]
>>         at
>> org.apache.felix.cm.impl.ConfigurationManager$UpdateConfiguration.run(ConfigurationManager.java:1753)[7:org.apache.felix.configadmin:1.8.8]
>>         at
>> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)[7:org.apache.felix.configadmin:1.8.8]
>>         at
>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)[7:org.apache.felix.configadmin:1.8.8]
>>         at java.lang.Thread.run(Thread.java:745)[:1.8.0_74]
>> ERROR: Bundle org.apache.karaf.features.core [9] Error starting
>> mvn:org.apache.karaf.features/org.apache.karaf.features.core/4.0.5
>> (org.osgi.framework.BundleException: Unable to resolve
>> org.apache.karaf.features.core [9](R 9.0): missing requirement
>> [org.apache.karaf.features.core [9](R 9.0)] osgi.wiring.package;
>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))
>> Unresolved requirements: [[org.apache.karaf.features.core [9](R 9.0)]
>> osgi.wiring.package;
>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))])org.osgi.framework.BundleException:
>> Unable to resolve org.apache.karaf.features.core [9](R 9.0): missing
>> requirement [org.apache.karaf.features.core [9](R 9.0)]
>> osgi.wiring.package;
>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))
>> Unresolved requirements: [[org.apache.karaf.features.core [9](R 9.0)]
>> osgi.wiring.package;
>> (&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))]
>>         at
>> org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4111)
>>         at org.apache.felix.framework.Felix.startBundle(Felix.java:2117)
>>         at
>> org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1371)
>>         at
>> org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
>>         at java.lang.Thread.run(Thread.java:745)
>>
>> So, the DLL seems to be loaded and Pax-logging seems to work using
>> Pax-logging 1.8.1 but not using Pax-logging 1.8.5.
>>
>> I will re-post this conversation to the OOPS4J mailing list.
>>
>> /Bengt
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> 2016-07-01 8:55 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>
>>> OK - I guess I misunderstood this then.
>>>
>>> Looking in the POM's I now see that there are dependencies to both log4j
>>> 1.2.16 and log4j 2.x.
>>>
>>> I wonder then why the NTEventLogAppender can't be used in Karaf 4.0.5.
>>> For a while I thought it might be a java version problem. I now use Java 8
>>> instead of Java 7 like I did before. But even if I run Karaf 4.0.5 using
>>> Java 7 I still get the same problem.
>>>
>>> I will try to use Karaf 4.0.5 with Pax-logging 1.8.1 to see if it makes
>>> any difference. What is the best way to accomplish that?
>>>
>>> /Bengt
>>>
>>> 2016-06-30 16:54 GMT+02:00 Achim Nierbeck <bc...@googlemail.com>:
>>>
>>>> Hi Bengt,
>>>>
>>>> newer versions of Pax-Logging don't use log4j2 per default so this
>>>> should still work ...
>>>> the underlying impl is still log4j 1 unless someone changed it on a
>>>> minor version update ...
>>>>
>>>> regards, Achim
>>>>
>>>>
>>>> 2016-06-30 16:23 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>>>
>>>>> Thanks JB,
>>>>>
>>>>> Tried it though and no diffference.
>>>>>
>>>>> When investigating this it seems like newer versions of pax-logging
>>>>> uses log4j2. Unfortunately the NTEventLogAppender is incompatible
>>>>> with log4j2.
>>>>>
>>>>> I've found the project log4jna that seems to target this.
>>>>> Unfortunately I cannot find a released version that supports log4j2.
>>>>>
>>>>> Anyone else encountered this?
>>>>>
>>>>> /Bengt
>>>>>
>>>>> 2016-06-30 14:48 GMT+02:00 Jean-Baptiste Onofré <jb...@nanthrax.net>:
>>>>>
>>>>>> In Karaf 4, the dll should go in lib/ext.
>>>>>>
>>>>>> Regards
>>>>>> JB
>>>>>>
>>>>>> On 06/30/2016 02:16 PM, Bengt Rodehav wrote:
>>>>>>
>>>>>>> I have a feeling that I need to put the NTEventLogAppender.amd4.dll
>>>>>>> in
>>>>>>> another directory in Karaf 4.0.5 then in Karaf 2.4.1.
>>>>>>>
>>>>>>> I have always put it in the directory %KARAF_HOME%/lib which works
>>>>>>> for
>>>>>>> Karaf 2.4.1. Where should DLL's be put in Karaf 4.0.5?
>>>>>>>
>>>>>>> /Bengt
>>>>>>>
>>>>>>> 2016-06-29 17:37 GMT+02:00 Bengt Rodehav <bengt@rodehav.com
>>>>>>> <ma...@rodehav.com>>:
>>>>>>>
>>>>>>>
>>>>>>>     I'm trying to upgrade from Karaf 2..1 to 4.0.5 and I run into
>>>>>>>     problems regarding NTEventLogAppender. I get the following on
>>>>>>> startup:
>>>>>>>
>>>>>>>     2016-06-29 17:16:05,354 | ERROR | 4j.pax.logging]) | configadmin
>>>>>>>                       | ?
>>>>>>>          ? | [org.osgi.service.log.LogService,
>>>>>>>     org.knopflerfish.service.log.LogService,
>>>>>>>     org.ops4j.pax.logging.PaxLoggingService,
>>>>>>>     org.osgi.service.cm.ManagedService, id=34,
>>>>>>>     bundle=6/mvn:org.ops4j.pax.logging/pax-logging-service/1.8.5]:
>>>>>>>     Unexpected problem updating configuration org.ops4j.pax.logging
>>>>>>>     java.lang.UnsatisfiedLinkError: no NTEventLogAppender in
>>>>>>>     java.library.path
>>>>>>>              at
>>>>>>>
>>>>>>> java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)[:1.8.0_74]
>>>>>>>              at
>>>>>>> java.lang.Runtime.loadLibrary0(Runtime.java:870)[:1.8.0_74]
>>>>>>>              at
>>>>>>> java.lang.System.loadLibrary(System.java:1122)[:1.8.0_74]
>>>>>>>              at
>>>>>>>
>>>>>>> org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:179)
>>>>>>>              at
>>>>>>>     sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>>>>>>>     Method)[:1.8.0_74]
>>>>>>>              at
>>>>>>>
>>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)[:1.8.0_74]
>>>>>>>              at
>>>>>>>
>>>>>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)[:1.8.0_74]
>>>>>>>              at
>>>>>>>
>>>>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:423)[:1.8.0_74]
>>>>>>>              at
>>>>>>> java.lang.Class.newInstance(Class.java:442)[:1.8.0_74]
>>>>>>>              at
>>>>>>>
>>>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>              at
>>>>>>>
>>>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>              at
>>>>>>>
>>>>>>> org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>              at
>>>>>>>
>>>>>>> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>              at
>>>>>>>
>>>>>>> org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:639)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>              at
>>>>>>>
>>>>>>> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:504)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>              at
>>>>>>>
>>>>>>> org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>              at
>>>>>>>
>>>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>              at
>>>>>>>
>>>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>>>              at
>>>>>>>
>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>              at
>>>>>>>
>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>              at
>>>>>>>
>>>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>              at
>>>>>>>
>>>>>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.provide(ConfigurationManager.java:1444)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>              at
>>>>>>>
>>>>>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.run(ConfigurationManager.java:1400)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>              at
>>>>>>>
>>>>>>> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>              at
>>>>>>>
>>>>>>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)[7:org.apache.felix.configadmin:1.8.8]
>>>>>>>              at java.lang.Thread.run(Thread.java:745)[:1.8.0_74]
>>>>>>>
>>>>>>>     Like I did on Karaf 2.4.1, I have put the
>>>>>>>     file NTEventLogAppender.amd64.dll in the "lib" directory under
>>>>>>>     Karaf. It has the version 1.2.16.1.
>>>>>>>
>>>>>>>     Does anyone know how to get the NTEventLogAppender to work with
>>>>>>>     Karaf 4.0.5?
>>>>>>>
>>>>>>>     /Bengt
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> --
>>>>>> Jean-Baptiste Onofré
>>>>>> jbonofre@apache.org
>>>>>> http://blog.nanthrax.net
>>>>>> Talend - http://www.talend.com
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> Apache Member
>>>> Apache Karaf <http://karaf.apache.org/> Committer & PMC
>>>> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/>
>>>> Committer & Project Lead
>>>> blog <http://notizblog.nierbeck.de/>
>>>> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>
>>>>
>>>> Software Architect / Project Manager / Scrum Master
>>>>
>>>>
>>>
>>
>

Re: Log4j NTEventLogAppender in Karaf 4.0.5

Posted by Bengt Rodehav <be...@rodehav.com>.
Turned out not to be so easy to switch version of Pax-logging.

I edited startup.properties.I also had to change version of pax-url-aether
to 2.3.0. However, it seems like org.apache.karaf.features.core bundle
requires a version of pax-url-aehter that is at least 2.4. However, I still
think that the results I got indicates that the NTEventLogAppender works
with Pax-logging 1.8.1 but not with 1.8.5.

Switching to Pax-logging 1.8.1 using Karaf 4.0.5 gives me the following
error message if I put the NTEventLogAppender.amd64.dll in the
%KARAF_HOME%\lib directory:

ERROR: Bundle org.apache.karaf.features.core [9] Error starting
mvn:org.apache.karaf.features/org.apache.karaf.features.core/4.0.5
(org.osgi.framework.BundleException: Unable to resolve
org.apache.karaf.features.core [9](R 9.0): missing requirement
[org.apache.karaf.features.core [9](R 9.0)] osgi.wiring.package;
(&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))
Unresolved requirements: [[org.apache.karaf.features.core [9](R 9.0)]
osgi.wiring.package;
(&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))])
org.osgi.framework.BundleException: Unable to resolve
org.apache.karaf.features.core [9](R 9.0): missing requirement
[org.apache.karaf.features.core [9](R 9.0)] osgi.wiring.package;
(&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))
Unresolved requirements: [[org.apache.karaf.features.core [9](R 9.0)]
osgi.wiring.package;
(&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))]
        at
org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4111)
        at org.apache.felix.framework.Felix.startBundle(Felix.java:2117)
        at
org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1371)
        at
org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
        at java.lang.Thread.run(Thread.java:745)

..and the following error messages if I do NOT put the
NTEventLogAppender.amd64.dll in the %KARAF_HOME%\lib directory:

2016-07-01 09:14:04,105 | ERROR | s4j.pax.logging) | configadmin
           | ?    ? | [org.osgi.service.log.LogService,
org.knopflerfish.service.log.LogService,
org.ops4j.pax.logging.PaxLoggingService,
org.osgi.service.cm.ManagedService, id=12,
bundle=6/mvn:org.ops4j.pax.logging/pax-logging-service/1.8.1]: Unexpected
problem updating configuration org.ops4j.pax.logging
java.lang.UnsatisfiedLinkError: no NTEventLogAppender in java.library.path
        at
java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)[:1.8.0_74]
        at java.lang.Runtime.loadLibrary0(Runtime.java:870)[:1.8.0_74]
        at java.lang.System.loadLibrary(System.java:1122)[:1.8.0_74]
        at
org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:179)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)[:1.8.0_74]
        at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)[:1.8.0_74]
        at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)[:1.8.0_74]
        at
java.lang.reflect.Constructor.newInstance(Constructor.java:423)[:1.8.0_74]
        at java.lang.Class.newInstance(Class.java:442)[:1.8.0_74]
        at
org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
        at
org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
        at
org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
        at
org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
        at
org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:639)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
        at
org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:504)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
        at
org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
        at
org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
        at
org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)[6:org.ops4j.pax.logging.pax-logging-service:1.8.1]
        at
org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)[7:org.apache.felix.configadmin:1.8.8]
        at
org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)[7:org.apache.felix.configadmin:1.8.8]
        at
org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)[7:org.apache.felix.configadmin:1.8.8]
        at
org.apache.felix.cm.impl.ConfigurationManager$UpdateConfiguration.run(ConfigurationManager.java:1753)[7:org.apache.felix.configadmin:1.8.8]
        at
org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)[7:org.apache.felix.configadmin:1.8.8]
        at
org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)[7:org.apache.felix.configadmin:1.8.8]
        at java.lang.Thread.run(Thread.java:745)[:1.8.0_74]
ERROR: Bundle org.apache.karaf.features.core [9] Error starting
mvn:org.apache.karaf.features/org.apache.karaf.features.core/4.0.5
(org.osgi.framework.BundleException: Unable to resolve
org.apache.karaf.features.core [9](R 9.0): missing requirement
[org.apache.karaf.features.core [9](R 9.0)] osgi.wiring.package;
(&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))
Unresolved requirements: [[org.apache.karaf.features.core [9](R 9.0)]
osgi.wiring.package;
(&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))])org.osgi.framework.BundleException:
Unable to resolve org.apache.karaf.features.core [9](R 9.0): missing
requirement [org.apache.karaf.features.core [9](R 9.0)]
osgi.wiring.package;
(&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))
Unresolved requirements: [[org.apache.karaf.features.core [9](R 9.0)]
osgi.wiring.package;
(&(osgi.wiring.package=org.ops4j.pax.url.mvn)(version>=2.4.0)(!(version>=3.0.0)))]
        at
org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4111)
        at org.apache.felix.framework.Felix.startBundle(Felix.java:2117)
        at
org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1371)
        at
org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
        at java.lang.Thread.run(Thread.java:745)

So, the DLL seems to be loaded and Pax-logging seems to work using
Pax-logging 1.8.1 but not using Pax-logging 1.8.5.

I will re-post this conversation to the OOPS4J mailing list.

/Bengt


















2016-07-01 8:55 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:

> OK - I guess I misunderstood this then.
>
> Looking in the POM's I now see that there are dependencies to both log4j
> 1.2.16 and log4j 2.x.
>
> I wonder then why the NTEventLogAppender can't be used in Karaf 4.0.5.
> For a while I thought it might be a java version problem. I now use Java 8
> instead of Java 7 like I did before. But even if I run Karaf 4.0.5 using
> Java 7 I still get the same problem.
>
> I will try to use Karaf 4.0.5 with Pax-logging 1.8.1 to see if it makes
> any difference. What is the best way to accomplish that?
>
> /Bengt
>
> 2016-06-30 16:54 GMT+02:00 Achim Nierbeck <bc...@googlemail.com>:
>
>> Hi Bengt,
>>
>> newer versions of Pax-Logging don't use log4j2 per default so this should
>> still work ...
>> the underlying impl is still log4j 1 unless someone changed it on a minor
>> version update ...
>>
>> regards, Achim
>>
>>
>> 2016-06-30 16:23 GMT+02:00 Bengt Rodehav <be...@rodehav.com>:
>>
>>> Thanks JB,
>>>
>>> Tried it though and no diffference.
>>>
>>> When investigating this it seems like newer versions of pax-logging uses
>>> log4j2. Unfortunately the NTEventLogAppender is incompatible with
>>> log4j2.
>>>
>>> I've found the project log4jna that seems to target this. Unfortunately
>>> I cannot find a released version that supports log4j2.
>>>
>>> Anyone else encountered this?
>>>
>>> /Bengt
>>>
>>> 2016-06-30 14:48 GMT+02:00 Jean-Baptiste Onofré <jb...@nanthrax.net>:
>>>
>>>> In Karaf 4, the dll should go in lib/ext.
>>>>
>>>> Regards
>>>> JB
>>>>
>>>> On 06/30/2016 02:16 PM, Bengt Rodehav wrote:
>>>>
>>>>> I have a feeling that I need to put the NTEventLogAppender.amd4.dll in
>>>>> another directory in Karaf 4.0.5 then in Karaf 2.4.1.
>>>>>
>>>>> I have always put it in the directory %KARAF_HOME%/lib which works for
>>>>> Karaf 2.4.1. Where should DLL's be put in Karaf 4.0.5?
>>>>>
>>>>> /Bengt
>>>>>
>>>>> 2016-06-29 17:37 GMT+02:00 Bengt Rodehav <bengt@rodehav.com
>>>>> <ma...@rodehav.com>>:
>>>>>
>>>>>
>>>>>     I'm trying to upgrade from Karaf 2..1 to 4.0.5 and I run into
>>>>>     problems regarding NTEventLogAppender. I get the following on
>>>>> startup:
>>>>>
>>>>>     2016-06-29 17:16:05,354 | ERROR | 4j.pax.logging]) | configadmin
>>>>>                       | ?
>>>>>          ? | [org.osgi.service.log.LogService,
>>>>>     org.knopflerfish.service.log.LogService,
>>>>>     org.ops4j.pax.logging.PaxLoggingService,
>>>>>     org.osgi.service.cm.ManagedService, id=34,
>>>>>     bundle=6/mvn:org.ops4j.pax.logging/pax-logging-service/1.8.5]:
>>>>>     Unexpected problem updating configuration org.ops4j.pax.logging
>>>>>     java.lang.UnsatisfiedLinkError: no NTEventLogAppender in
>>>>>     java.library.path
>>>>>              at
>>>>>     java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)[:1.8.0_74]
>>>>>              at
>>>>> java.lang.Runtime.loadLibrary0(Runtime.java:870)[:1.8.0_74]
>>>>>              at
>>>>> java.lang.System.loadLibrary(System.java:1122)[:1.8.0_74]
>>>>>              at
>>>>>
>>>>> org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:179)
>>>>>              at
>>>>>     sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>>>>>     Method)[:1.8.0_74]
>>>>>              at
>>>>>
>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)[:1.8.0_74]
>>>>>              at
>>>>>
>>>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)[:1.8.0_74]
>>>>>              at
>>>>>
>>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:423)[:1.8.0_74]
>>>>>              at java.lang.Class.newInstance(Class.java:442)[:1.8.0_74]
>>>>>              at
>>>>>
>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>              at
>>>>>
>>>>> org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>              at
>>>>>
>>>>> org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>              at
>>>>>
>>>>> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>              at
>>>>>
>>>>> org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:639)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>              at
>>>>>
>>>>> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:504)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>              at
>>>>>
>>>>> org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>              at
>>>>>
>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>              at
>>>>>
>>>>> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)[6:org.ops4j.pax.logging.pax-logging-service:1.8.5]
>>>>>              at
>>>>>
>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)[7:org.apache.felix.configadmin:1.8.8]
>>>>>              at
>>>>>
>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)[7:org.apache.felix.configadmin:1.8.8]
>>>>>              at
>>>>>
>>>>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)[7:org.apache.felix.configadmin:1.8.8]
>>>>>              at
>>>>>
>>>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.provide(ConfigurationManager.java:1444)[7:org.apache.felix.configadmin:1.8.8]
>>>>>              at
>>>>>
>>>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.run(ConfigurationManager.java:1400)[7:org.apache.felix.configadmin:1.8.8]
>>>>>              at
>>>>>
>>>>> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)[7:org.apache.felix.configadmin:1.8.8]
>>>>>              at
>>>>>
>>>>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)[7:org.apache.felix.configadmin:1.8.8]
>>>>>              at java.lang.Thread.run(Thread.java:745)[:1.8.0_74]
>>>>>
>>>>>     Like I did on Karaf 2.4.1, I have put the
>>>>>     file NTEventLogAppender.amd64.dll in the "lib" directory under
>>>>>     Karaf. It has the version 1.2.16.1.
>>>>>
>>>>>     Does anyone know how to get the NTEventLogAppender to work with
>>>>>     Karaf 4.0.5?
>>>>>
>>>>>     /Bengt
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>> --
>>>> Jean-Baptiste Onofré
>>>> jbonofre@apache.org
>>>> http://blog.nanthrax.net
>>>> Talend - http://www.talend.com
>>>>
>>>
>>>
>>
>>
>> --
>>
>> Apache Member
>> Apache Karaf <http://karaf.apache.org/> Committer & PMC
>> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer
>> & Project Lead
>> blog <http://notizblog.nierbeck.de/>
>> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>
>>
>> Software Architect / Project Manager / Scrum Master
>>
>>
>