频道栏目
首页 > 资讯 > 其他综合 > 正文

osgi + camel + karaf配置日志输出

16-06-24        来源:[db:作者]  
收藏   我要投稿

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


配置日志

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

 
                    org.apache.maven.plugins
                    maven-resources-plugin
                    true
                    
                        
                            copy-resources
                            install
                            
                                copy-resources
                            
                            
                                target/assembly
                                true
                                
                                    
                                        ../../assembly/develop
                                        false
                                    
                                    
                                        src/test/resources
                                        false
                                    
                                
                            
                        
                    
                

                                        ../../assembly/develop
                                        false

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


                                        src/test/resources
                                        false

在以上配置完成之后,在相应的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文件中,如下所示:

mvn:${project.groupId}/example/${project.version}

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

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


总结

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

相关TAG标签
上一篇:ssm框架搭建和easyui增删改查实现
下一篇:java多线程--线程休眠
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站