Я пытаюсь использовать JSONEventLayoutV1 в качестве макета шаблона для ведения журнала karaf для регистрации всех событий в json. формат.
Шаги, которые я выполнил.
Изменил файл
pom.xml
jsonevent-layout
, как показано ниже: -<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>*;resolution:=optional</Import-Package> <Export-Package>*</Export-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>
Создайте формат json, используя
mvn clean install -Pbundle
Скопируйте созданный пакет в системный каталог
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/
- Добавьте эту строку в
etc/startup.properties
перед Pax Loggingnet/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
- Обновлено
org.ops4j.pax.logging.cfg
следующим образом: -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
Но всякий раз, когда я запускаю Karaf, я получаю следующее исключение: -
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% [========================================================================]
Может ли кто-нибудь сообщить мне, что я делаю неправильно?
Эта проблема также обсуждалась на форуме пользователей Karaf< /а>. Но все равно не повезло.
<Import-Package>*;resolution:=optional</Import-Package>
и<Export-Package>*</Export-Package>
в pom.xml. Но все равно получаю ту же ошибку. Также обновил мойpom.xml
в вопросе. - person tuk   schedule 29.02.2016