码迷,mamicode.com
首页 > 其他好文 > 详细

osgi + camel + karaf配置日志输出

时间:2016-06-24 09:24:34      阅读:473      评论:0      收藏:0      [点我收藏+]

标签:

上篇博文中编了felix的一个简单example,然后演示了example的启动,Activator启动之后进行了控制台输出,但整个example feature的启动过程中那些bundle进行了install过程并没有演示,接下来将演示这一过程。


配置日志

首先对karaf的输出进行日志输出,先前在parent module中pom.xml中配置插件指定配置文件位置,如下所示:

 <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <extensions>true</extensions>
                    <executions>
                        <execution>
                            <id>copy-resources</id>
                            <phase>install</phase>
                            <goals>
                                <goal>copy-resources</goal>
                            </goals>
                            <configuration>
                                <outputDirectory>target/assembly</outputDirectory>
                                <overwrite>true</overwrite>
                                <resources>
                                    <resource>
                                        <directory>../../assembly/develop</directory>
                                        <filtering>false</filtering>
                                    </resource>
                                    <resource>
                                        <directory>src/test/resources</directory>
                                        <filtering>false</filtering>
                                    </resource>
                                </resources>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
<resource>
                                        <directory>../../assembly/develop</directory>
                                        <filtering>false</filtering>
</resource>

这一个是指定全局的配置文件位置,以下这一个是指定每一个module单独的配置文件如每个module独有的数据源等等。

<resource>
                                        <directory>src/test/resources</directory>
                                        <filtering>false</filtering>
</resource>

在以上配置完成之后,在相应的root目录下建立相关文件夹,添加名为org.ops4j.pax.logging.cfg的配置文件,这个文件不知道的可以单独在google上查询一下,这个就是指定karaf日志输出以及格式确定的。


日志格式

org.ops4j.pax.logging.cfg具体的内容如下:

################################################################################
#
#    Licensed to the Apache Software Foundation (ASF) under one or more
#    contributor license agreements.  See the NOTICE file distributed with
#    this work for additional information regarding copyright ownership.
#    The ASF licenses this file to You under the Apache License, Version 2.0
#    (the "License"); you may not use this file except in compliance with
#    the License.  You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
#    Unless required by applicable law or agreed to in writing, software
#    distributed under the License is distributed on an "AS IS" BASIS,
#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#    See the License for the specific language governing permissions and
#    limitations under the License.
#
################################################################################

# Root logger
log4j.rootLogger=INFO, stdout, out, osgi:*
log4j.throwableRenderer=org.apache.log4j.OsgiThrowableRenderer

# CONSOLE appender not used by default
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} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n

# File appender
log4j.appender.out=org.apache.log4j.RollingFileAppender
log4j.appender.out.layout=org.apache.log4j.PatternLayout
log4j.appender.out.layout.ConversionPattern=%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
log4j.appender.out.file=${karaf.data}/log/karaf.log
log4j.appender.out.append=true
log4j.appender.out.maxFileSize=1MB
log4j.appender.out.maxBackupIndex=10

# Sift appender
log4j.appender.sift=org.apache.log4j.sift.MDCSiftingAppender
log4j.appender.sift.key=bundle.name
log4j.appender.sift.default=karaf
log4j.appender.sift.appender=org.apache.log4j.FileAppender
log4j.appender.sift.appender.layout=org.apache.log4j.PatternLayout
log4j.appender.sift.appender.layout.ConversionPattern=%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %m%n
log4j.appender.sift.appender.file=${karaf.data}/log/$\\{bundle.name\\}.log
log4j.appender.sift.appender.append=true

这里指定了日志输出的具体格式,以及输出那些内容与级别。


演示

现在再次启动karaf,观察输出日志,如下图所示:
技术分享
现在就能仔细查看日志中的具体内容,不必担心当karaf启动失败不知道问题所在了,这里的karaf日志输出在日后整合cxf时候还有具体的应用,这里karaf的日志输出确实比较方便。


#观察karaf中bundle

进入example中的target中的assembly文件夹中,如下图所示:
技术分享
cmd控制台进入上述bin文件夹之中,输入karaf.bat,进入karaf控制台,
技术分享
输入命令bundle:list
查看karaf中所有install的bundle,如下图所示:
技术分享

上图中可以看到example的启动级别为100最高,这里是可以设置的,就是在osgi系列的第二篇博文中指定的feature.xml文件中,如下所示:

<bundle start-level="100">mvn:${project.groupId}/example/${project.version}</bundle>

不过我们一般并不需要这个高的启动级别,一般设置低一点就可以了。

在图中,example的state为Active,表示bundle正常install,另方面证明Activator的启动完全正常,程序演示成功。


总结

本文讲述了karaf具体的日志输出以及bundle install过程,下一篇博文将继续felix 中example的编写。

osgi + camel + karaf配置日志输出

标签:

原文地址:http://blog.csdn.net/u012734441/article/details/51749598

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!