You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@karaf.apache.org by D <su...@gmail.com> on 2016/02/27 19:01:53 UTC

Using log4j json-event-layout with Karaf 3.0.5 running under servicemix

I am trying to use  JSONEventLayoutV1
<https://github.com/logstash/log4j-jsonevent-layout>   as the pattern layout
for karaf logging.

The steps that I have followed.

1. Modified the pom.xml file of jsonevent-layout as shown below:-

<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.3.7</version>
<extensions>true</extensions>
<configuration>
    <instructions>
        <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
       
<Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
        <Import-Package>!*</Import-Package>
       
<Fragment-Host>org.ops4j.pax.logging.pax-logging-service;bundle-version="[1.6,1.7)"</Fragment-Host>
       
<Embed-Dependency>*;scope=compile|runtime;inline=true</Embed-Dependency>
        <Implementation-Version>${project.version}</Implementation-Version>
    </instructions>
</configuration>
</plugin>

2. Build json format using mvn clean install -Pbundle

3. Copy bundle created to system directory

    mkdir -p
${karaf.home}/system/net/logstash/log4j/jsonevent-layout/1.8-SNAPSHOT/    
    cp target/jsonevent-layout-1.8-SNAPSHOT.jar
${karaf.home}/system/net/logstash/log4j/jsonevent-layout/1.8-SNAPSHOT/

4. Add this line to etc/startup.properties before Pax Logging
   
net/logstash/log4j/jsonevent-layout/1.8-SNAPSHOT/jsonevent-layout-1.8-SNAPSHOT.jar=3
    mvn\:org.ops4j.pax.url/pax-url-aether/2.4.1 = 5
    mvn\:org.ops4j.pax.url/pax-url-wrap/2.4.1/jar/uber = 5
    mvn\:org.ops4j.pax.logging/pax-logging-api/1.8.4 = 8
    mvn\:org.ops4j.pax.logging/pax-logging-service/1.8.4 = 8
    Updated org.ops4j.pax.logging.cfg as follows:-
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=net.logstash.log4j.JSONEventLayoutV1
    log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} | %-5.5p |
%-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} -
%X{bundle.version} | %m%n

But whenever I am starting Karaf I am getting the below exception:-
jabong@jabong1143:~/Downloads/software/dev/apache-servicemix-6.1.0$ sudo
bin/servicemix
Please wait while Apache ServiceMix is starting...
 21% [===============>                                                       
]log4j:ERROR Could not instantiate class
[net.logstash.log4j.JSONEventLayoutV1].
java.lang.ClassNotFoundException: net.logstash.log4j.JSONEventLayoutV1 not
found by org.ops4j.pax.logging.pax-logging-service [5]
    at
org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1532)
    at
org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75)
    at
org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at org.apache.log4j.helpers.Loader.loadClass(Loader.java:198)
    at
org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:326)
    at
org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)
    at
org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:129)
    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:1747)
    at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:103)
    at java.lang.Thread.run(Thread.java:745)
log4j:ERROR No layout set for the appender named [out].
100%
[========================================================================]

Can some one let me know what I am doing wrong? 





--
View this message in context: http://karaf.922171.n3.nabble.com/Using-log4j-json-event-layout-with-Karaf-3-0-5-running-under-servicemix-tp4045599.html
Sent from the Karaf - User mailing list archive at Nabble.com.