osgi + camel + karaf配置日志输出
来源:互联网 发布:美国监狱方便面 知乎 编辑:程序博客网 时间:2024/06/05 11:03
上篇博文中编了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 loggerlog4j.rootLogger=INFO, stdout, out, osgi:*log4j.throwableRenderer=org.apache.log4j.OsgiThrowableRenderer# CONSOLE appender not used by defaultlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.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 appenderlog4j.appender.out=org.apache.log4j.RollingFileAppenderlog4j.appender.out.layout=org.apache.log4j.PatternLayoutlog4j.appender.out.layout.ConversionPattern=%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%nlog4j.appender.out.file=${karaf.data}/log/karaf.loglog4j.appender.out.append=truelog4j.appender.out.maxFileSize=1MBlog4j.appender.out.maxBackupIndex=10# Sift appenderlog4j.appender.sift=org.apache.log4j.sift.MDCSiftingAppenderlog4j.appender.sift.key=bundle.namelog4j.appender.sift.default=karaflog4j.appender.sift.appender=org.apache.log4j.FileAppenderlog4j.appender.sift.appender.layout=org.apache.log4j.PatternLayoutlog4j.appender.sift.appender.layout.ConversionPattern=%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %m%nlog4j.appender.sift.appender.file=${karaf.data}/log/$\\{bundle.name\\}.loglog4j.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配置日志输出
- osgi+camel+karaf运行环境搭建(1)
- osgi+camel+karaf运行环境搭建(2)
- Karaf--OSGi
- Karaf教程第5部分-在OSGi中运行 Apache Camel集成
- Servicemix,Karaf和Camel
- Servicemix,Karaf和Camel
- maven,OSGI,karaf 学习笔记
- OSGI-karaf安装及使用
- Camel blueprint + karaf 企业总线架构
- Karaf教程第3部分 使用OSGi Metatype服务和Felix Webconsole改善配置编辑
- tutorial-osgi-camel-part1.html
- Karaf教程第8部分-分布式OSGi
- OSGI环境下配置log4j日志
- Apache karaf端口配置
- karaf配置自定义featrues
- karaf jvm参数配置
- Karaf教程第7部分- Camel JPA和JTA事务
- 数论基础知识小结
- mysql常用函数基本查询
- 文章标题
- HDU2006 求奇数的乘积
- OpenGLES—拾取
- osgi + camel + karaf配置日志输出
- js 获取当前浏览器所在的位置
- img标签src属性更新图片
- environ(7)用户环境
- 我的c学习:i++ 打印乘法表
- centeros7 卸载opjdk
- ExtJs杂记
- Android EditText 不自动获取焦点
- 常见端口详解及攻击策略