Thanks JB! I've got the following config for appender to try out the field
exclude:

# File
filename=${karaf.data}/log/karaf-json.log

# Marshaller
marshaller.target=(dataFormat=json)

# Append file
append=true

# Fields Excluded by Name
event.property.name.exclude=MDC


This seems to stop the appender from producing any json log. Removing
the event.property.name.exclude=MDC

Also I couldn't find these properties documented anywhere nor could I
find them in karaf decanter source code. Is the format I used correct?



On Sun, 9 Jun 2019 at 02:58, Jean-Baptiste Onofré <j...@nanthrax.net> wrote:

> Yes, you can create your own marshaller is you want to ;)
>
> By default, Decanter collectors send a Map to the Decanter appenders.
> Then the appenders use eventually marshaller to convert the Map to
> something else. You can control the keys or values in this map that you
> want to include/exclude by directly configuring in the appender
> configuration (with
>
> event.property.name.exclude/event.property.name.include/event.property.value.exclude/event.property.value.include
> properties).
> By default, the JSON Marshaller convert the map as a json using jackson.
> If you want a full control, you can also create your own Marshaller
> service. But I think that just the filtering on the appender should be
> OK for you.
> Let me know if you need help about that.
>
> Regards
> JB
>
> On 08/06/2019 18:52, Noobtube Account wrote:
> > Great! Are we also able to control the format or turn fields off?
> >
> >
> > On Sun, 9 Jun 2019 at 2:51 am, Jean-Baptiste Onofré <j...@nanthrax.net
> > <mailto:j...@nanthrax.net>> wrote:
> >
> >     Yes, Decanter Log Collector is a global Pax Logging "sniffer". So it
> >     takes messages from any bundle by default.
> >
> >     However, you can configure this directly in
> >     etc/org.ops4j.pax.logging.cfg.
> >
> >     Regards
> >     JB
> >
> >     On 08/06/2019 18:07, Noobtube Account wrote:
> >     > Oh, scratch that. Uncommenting the filename in
> >     > etc/org.apache.karaf.decanter.appender.file.cfg seemed to have
> made it
> >     > work. It probably wasn't due to that though and likely something
> >     else I
> >     > did. Anyway, thanks for pointing out karaf decanter.
> >     >
> >     > Will the log collector collect log executions made through any
> >     bundle?
> >     >
> >     >
> >     > On Sun, 9 Jun 2019 at 01:55, Noobtube Account <spidyt...@gmail.com
> >     <mailto:spidyt...@gmail.com>
> >     > <mailto:spidyt...@gmail.com <mailto:spidyt...@gmail.com>>> wrote:
> >     >
> >     >     Thanks JB. I'm trying the decanter as you mentioned.
> >     >
> >     >     I've done:
> >     >     feature:repo-add decanter
> >     >     feature:install decanter-collector-log
> >     >     feature:install decanter-appender-file
> >     >
> >     >     Then I edited etc/org.apache.karaf.decanter.appender.file.cfg
> and
> >     >     added:
> >     >     # Marshaller
> >     >     marshaller.target=(dataFormat=json)
> >     >
> >     >     But I don't see any logs created. Do we need to install the
> >     marshaller?
> >     >
> >     >     On Sun, 9 Jun 2019 at 00:33, Jean-Baptiste Onofré
> >     <j...@nanthrax.net <mailto:j...@nanthrax.net>
> >     >     <mailto:j...@nanthrax.net <mailto:j...@nanthrax.net>>> wrote:
> >     >
> >     >         By the way, instead of doing that, you can use regular
> logging
> >     >         and use
> >     >         Decanter with the log collector and the json marshaller to
> >     >         create json
> >     >         output (to log, file, elasticsearch or whatever).
> >     >
> >     >         Regards
> >     >         JB
> >     >
> >     >         On 08/06/2019 16:30, Jean-Baptiste Onofré wrote:
> >     >         > Hi
> >     >         >
> >     >         > You don't have to add logback-core as pax-logging-logback
> >     >         bundle already
> >     >         > embed it.
> >     >         >
> >     >         > Secondly it seems jackson is not imported correctly. The
> >     root
> >     >         cause is:
> >     >         >
> >     >         > Caused by: java.lang.ClassNotFoundException:
> >     >         >> com.fasterxml.jackson.databind.ObjectMapper not found by
> >     >         >> org.ops4j.pax.logging.pax-logging-logback
> >     >         >
> >     >         > You can try a dynamic import on pax-logging-logback.
> >     >         >
> >     >         > Else a simple workaround is to create a fragment with
> >     >         > pax-logging-logback as host and embedding
> (private-package)
> >     >         the classes
> >     >         > you need.
> >     >         >
> >     >         > I did that for json layout with pax-logging-log4j2.
> >     >         >
> >     >         > Regards
> >     >         > JB
> >     >         >
> >     >         > On 08/06/2019 16:17, Noobtube Account wrote:
> >     >         >> 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 <http://org.osgi.service.cm>
> >     >         <http://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
> >     >         >>
> >     >         >>
> >     >         >
> >     >
> >     >         --
> >     >         Jean-Baptiste Onofré
> >     >         jbono...@apache.org <mailto:jbono...@apache.org>
> >     <mailto:jbono...@apache.org <mailto:jbono...@apache.org>>
> >     >         http://blog.nanthrax.net
> >     >         Talend - http://www.talend.com
> >     >
> >
> >     --
> >     Jean-Baptiste Onofré
> >     jbono...@apache.org <mailto:jbono...@apache.org>
> >     http://blog.nanthrax.net
> >     Talend - http://www.talend.com
> >
>
> --
> Jean-Baptiste Onofré
> jbono...@apache.org
> http://blog.nanthrax.net
> Talend - http://www.talend.com
>

Reply via email to