I'm trying to get JSON format logging enabled in Karaf. Trying to do
something similar to what's described in
https://ops4j1.jira.com/browse/PAXLOGGING-168

On a fresh copy of Karaf 4.2.5 I've added to /etc/startup.properties:

mvn\:com.fasterxml.jackson.core/jackson-core/2.9.5 = 8
mvn\:com.fasterxml.jackson.core/jackson-annotations/2.9.5 = 8
mvn\:com.fasterxml.jackson.core/jackson-databind/2.9.5 = 8
mvn\:ch.qos.logback/logback-classic/1.2.2 = 8
mvn\:ch.qos.logback/logback-core/1.2.2 = 8
mvn\:ch.qos.logback.contrib/logback-json-core/0.1.5 = 8
mvn\:ch.qos.logback.contrib/logback-json-classic/0.1.5 = 8
mvn\:org.ops4j.pax.logging/pax-logging-logback/1.10.1 = 8

The above jars have been added to the system folder. They look like:
logback: https://pastebin.com/raw/60Pnu8f1
jackson: https://pastebin.com/raw/NkUqZrGS

My etc/org.ops4j.pax.logging.cfg contains the line:
org.ops4j.pax.logging.logback.config.file=${karaf.base}/etc/logback.xml

The log back is the same one from
https://ops4j1.jira.com/browse/PAXLOGGING-168

When I startup Karaf I get the following CNF error related to Jackson.
Shouldn't the startup.properties file make those classes available?

WARN in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@5c3aaee6 -
SizeAndTimeBasedFNATP is deprecated. Use SizeAndTimeBasedRollingPolicy
instead
WARN in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@5c3aaee6 - For
more information see
http://logback.qos.ch/manual/appenders.html#SizeAndTimeBasedRollingPolicy
00:14:49.839 [CM Configuration Updater (ManagedService Update:
pid=[org.ops4j.pax.logging])] ERROR org.apache.felix.configadmin -
[org.osgi.service.log.LogService, org.knopflerfish.service.log.LogService,
org.ops4j.pax.logging.PaxLoggingService,
org.osgi.service.cm.ManagedService, id=15,
bundle=13/mvn:org.ops4j.pax.logging/pax-logging-logback/1.10.1]: Unexpected
problem updating configuration org.ops4j.pax.logging
java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ObjectMapper
at
ch.qos.logback.contrib.jackson.JacksonJsonFormatter.<init>(JacksonJsonFormatter.java:41)
~[?:?]
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
ch.qos.logback.core.joran.action.NestedComplexPropertyIA.begin(NestedComplexPropertyIA.java:121)
~[?:?]
at
ch.qos.logback.core.joran.spi.Interpreter.callBeginAction(Interpreter.java:269)
~[?:?]
at
ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:145)
~[?:?]
at
ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:128)
~[?:?]
at ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:50)
~[?:?]
at
ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:165)
~[?:?]
at
ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:152)
~[?:?]
at
ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:110)
~[?:?]
at
ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:81)
~[?:?]
at
org.ops4j.pax.logging.logback.internal.PaxLoggingServiceImpl.configureLogback(PaxLoggingServiceImpl.java:325)
~[?:?]
at
org.ops4j.pax.logging.logback.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:258)
~[?:?]
at
org.ops4j.pax.logging.logback.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:471)
~[?:?]
at
org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)
~[9:org.apache.felix.configadmin:1.9.14]
at
org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)
[9:org.apache.felix.configadmin:1.9.14]
at
org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)
[9:org.apache.felix.configadmin:1.9.14]
at
org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.provide(ConfigurationManager.java:1113)
[9:org.apache.felix.configadmin:1.9.14]
at
org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.run(ConfigurationManager.java:1069)
[9:org.apache.felix.configadmin:1.9.14]
at org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:138)
[9:org.apache.felix.configadmin:1.9.14]
at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:105)
[9:org.apache.felix.configadmin:1.9.14]
at java.lang.Thread.run(Thread.java:748) [?:?]
Caused by: java.lang.ClassNotFoundException:
com.fasterxml.jackson.databind.ObjectMapper not found by
org.ops4j.pax.logging.pax-logging-logback [13]
at
org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1639)
~[?:?]
at
org.apache.felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:80)
~[?:?]
at
org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2053)
~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:?]
... 26 more

Reply via email to