karaf中利用Bundle引入外部log4j配置文件
环境准备:
1.在karaf_home下新建 config及logs目录
2.将mylog4j.properties拷贝到config文件夹下
查看log4j-1.2.17.jar/MANIFEST.MF
Manifest-Version: 1.0 Export-Package: org.apache.log4j.net;uses:="org.apache.log4j,org.apache.log4j.spi,javax.naming,org.apache.log4j.helpers,javax.jms,org.apache.log4j.xml,javax.mail,javax.mail.internet,org.w3c.dom,javax.jmdns";version="1.2.17",org.apache.log4j.jmx;uses:="org.apache.log4j,javax.management,org.apache.log4j.helpers,org.apache.log4j.spi";version="1.2.17",org.apache.log4j.jdbc;uses:="org.apache.log4j,org.apache.log4j.spi";version="1.2.17",org.apache.log4j.config;uses:="org.apache.log4j.helpers,org.apache.log4j,org.apache.log4j.spi";version="1.2.17",org.apache.log4j.helpers;uses:="org.apache.log4j,org.apache.log4j.spi,org.apache.log4j.pattern";version="1.2.17",org.apache.log4j;uses:="org.apache.log4j.spi,org.apache.log4j.helpers,org.apache.log4j.pattern,org.apache.log4j.or,org.apache.log4j.config";version="1.2.17",org.apache.log4j.or.jms;uses:="org.apache.log4j.helpers,javax.jms,org.apache.log4j.or";version="1.2.17",org.apache.log4j.nt;uses:="org.apache.log4j.helpers,org.apache.log4j,org.apache.log4j.spi";version="1.2.17",org.apache.log4j.or.sax;uses:="org.apache.log4j.or,org.xml.sax";version="1.2.17",org.apache.log4j.pattern;uses:="org.apache.log4j.helpers,org.apache.log4j.spi,org.apache.log4j,org.apache.log4j.or";version="1.2.17",org.apache.log4j.spi;uses:="org.apache.log4j,org.apache.log4j.helpers,org.apache.log4j.or";version="1.2.17",org.apache.log4j.rewrite;uses:="org.apache.log4j,org.apache.log4j.spi,org.apache.log4j.helpers,org.apache.log4j.xml,org.w3c.dom";version="1.2.17",org.apache.log4j.or;uses:="org.apache.log4j.helpers,org.apache.log4j.spi,org.apache.log4j";version="1.2.17",org.apache.log4j.xml;uses:="javax.xml.parsers,org.w3c.dom,org.xml.sax,org.apache.log4j.config,org.apache.log4j.helpers,org.apache.log4j,org.apache.log4j.spi,org.apache.log4j.or";version="1.2.17",org.apache.log4j.varia;uses:="org.apache.log4j.spi,org.apache.log4j,org.apache.log4j.helpers";version="1.2.17" Ignore-Package: com.sun.jdmk.comm,javax.swing.text,javax.swing.border,javax.swing.tree,javax.swing,com.ibm.uvm.tools,javax.swing.table,javax.swing.event Built-By: cy Tool: Bnd-0.0.357 Bundle-Name: Apache Log4j Created-By: Apache Maven Bundle Plugin Bundle-Vendor: Apache Software Foundation Build-Jdk: 1.6.0_23 Bundle-Version: 1.2.17 Bnd-LastModified: 1336302107501 Bundle-ManifestVersion: 2 Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt Bundle-Description: Apache Log4j 1.2 Bundle-DocURL: http://logging.apache.org/log4j/1.2 Bundle-SymbolicName: log4j Import-Package: javax.jmdns;resolution:=optional,javax.jms;resolution:=optional,javax.mail;resolution:=optional,javax.mail.internet;resolution:=optional,javax.management,javax.naming,javax.xml.parsers,org.w3c.dom,org.xml.sax,org.xml.sax.helpersName: org.apache.log4j DynamicImport-Package: * Implementation-Vendor: "Apache Software Foundation" Implementation-Title: log4j Implementation-Version: 1.2.17
我们能够看到 log4j-1.2.17.jar 就是一个Bundle
热部署 log4j
启动karaf,将 log4j-1.2.17.jar 拷贝到karaf_home/deploy文件夹下
输入 list 命令。能够查看Bundle已经成功安装
mylog4j.properties
### direct log messages to stdout ### log4j.appender.consoleout=org.apache.log4j.ConsoleAppender log4j.appender.consoleout.layout=org.apache.log4j.PatternLayout log4j.appender.consoleout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c:%L - %m%n### direct messages to file myfile.log ### log4j.appender.myfile=org.apache.log4j.DailyRollingFileAppender log4j.appender.myfile.File=logs/myfile.log log4j.appender.myfile.DatePattern='.'yyyy-MM-dd log4j.appender.myfile.layout=org.apache.log4j.PatternLayout log4j.appender.myfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c:%L - %m%nlog4j.rootLogger==info,consoleout,myfile
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.demo.hello.provider</groupId><artifactId>log-test</artifactId><version>0.0.1-SNAPSHOT</version><packaging>bundle</packaging><name>log-test</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.10</version><scope>test</scope></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><dependency><groupId>org.osgi</groupId><artifactId>org.osgi.core</artifactId><version>4.2.0</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.felix</groupId><artifactId>maven-bundle-plugin</artifactId><extensions>true</extensions><configuration><instructions><Import-Package>org.apache.log4j,org.osgi.framework.*</Import-Package><Bundle-Activator>com.demo.hello.provider.Activator</Bundle-Activator></instructions></configuration></plugin></plugins></build> </project>
Activitor
/** * * @author wumingkun* @version 1.0.0* @Description*/package com.demo.hello.provider;import org.apache.log4j.Logger; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext;import com.demo.hello.provider.log.LoggerFactory;/*** @author wumingkun**/ public class Activator implements BundleActivator {/* (non-Javadoc)* @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)*/public void start(BundleContext context) throws Exception {Logger logger =LoggerFactory.getLogger(Activator.class);logger.info("bundle start...");}/* (non-Javadoc)* @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)*/public void stop(BundleContext context) throws Exception {}}
LoggerFactory:
/*** * @author wumingkun* @version 1.0.0* @Description 日志工厂类*/package com.demo.hello.provider.log;import java.io.File;import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator;/*** @author wumingkun* */ public class LoggerFactory {public static final String CONFIG_DIR = "config";public static final String LOG4J_CONFIG = "myLog4j.properties";private static String fileName = getFileName();public static Logger getLogger(Class clazz) {Logger logger = Logger.getLogger(clazz);loadProperty();return logger;}private static String getFileName() {return System.getProperty("user.dir") + File.separator + CONFIG_DIR+ File.separator + LOG4J_CONFIG;}public static void loadProperty() {PropertyConfigurator.configure(fileName);} }
部署log-test
在karaf命令行能够看到,例如以下图所看到的:
在karaf_home/logs能够看到生成名为 myfile.log的日志文件
转载于:https://www.cnblogs.com/gccbuaa/p/6792667.html
karaf中利用Bundle引入外部log4j配置文件相关推荐
- springboot引入外部yml配置文件
本文记录下springboot引入外部yml配置文件 文章目录 概述 本文小结 概述 如果不想把所有的配置都写在application.yml文件中,把它拆分成多个yml文件,并在applicatio ...
- html中body引入js,ASP.NET MVC中在 @RenderBody() 或者 @Html.Partial()中需要使用引入外部js,css...
今天想在后台封装一下bootstraptree这个插件,引入jquery.js bootstrap.js bootstrap.css bootstrap-tree.js后,我在页面查看脚本错误就连最简 ...
- ATS 5.3.0中利用grep得到纯净的配置文件
ATS 5.3.0中的配置文件通常会标有详细的注释,但是我们有时候需要纯净的配置文件,特别是在线上部署的配置文件,不需要这么详细的注释.下面是处理过程. cat records.config | gr ...
- Qt中利用QProcess调用外部cmd.exe执行程序
1.#include "mainwindow.h"中 添加头文件: #include <QProcess> 添加成员: QProcess *myprocess; 添加槽 ...
- ASP.NET MVC中在 @RenderBody() 或者 @Html.Partial()中需要使用引入外部js,css
今天想在后台封装一下bootstraptree这个插件,引入jquery.js bootstrap.js bootstrap.css bootstrap-tree.js后,我在页面查看脚本错误就连最简 ...
- spring配置文件中引入其他的配置文件
spring配置文件中,如何引入其他的配置文件,如下: <import resource="abc/abc.xml">
- spring核心配置文件引入外部properties文件和另外的xml配置文件
spring核心配置文件引入外部properties文件和另外的xml配置文件 为什么要引入外部文件 我们使用jdbc的时候,会创建一个jdbc.properties配置文件,如果我需要在spring ...
- 引入外部化的配置文件
使用外部属性文件 在配置文件里配置 Bean 时, 有时需要在 Bean 的配置里混入系统部署的细节信息(例如: 文件路径, 数据源配置信息等). 而这些部署细节实际上需要和 Bean 配置相分离 S ...
- 论文浅尝 | 在生成式多跳机器阅读任务中引入外部常识知识
Commonsense for Generative Multi-Hop Question Answering Tasks 链接: https://arxiv.org/abs/1809.06309 背 ...
最新文章
- 些许注意事项(初学)
- C#---HTML 转文本及HTML内容提取
- html改变下拉框的大小,调整屏幕大小时,HTML导航栏下拉框内容无法正确调整大小...
- harbor镜像仓库-https访问的证书配置 (docker配置harbor https证书)
- javaweb家居用品线上销售系统_智能家居订单管理系统方案设计路线
- 第三次学JAVA再学不好就吃翔(part50)--String类练习
- java中修饰符的说明
- 8位可控加减法电路设计_100以内加减法速算方法,口算速度快一倍
- 201509-1-数列分段
- Python 下的数据结构实现
- UBUNTU安装后的root/su密码问题
- 股票交易数据下载 | 下载股票历史交易数据到本地Excel
- 企业微信有网页版登录吗?
- HTML、css、js 特殊字符(空格符号)
- t480 拆触摸板_thinkpadt480 win10电脑触摸板键盘失效怎么修复
- 中国AI行业走向:新人胜旧人还是 BAT 牢牢掌握价值链顶端? | 新智元投资领袖论坛...
- vue中企业微信 wx.onHistoryBack详解:
- 超简单的vue3.0,必看文档
- jpg转换成word(如何把jpg转换成word文档)
- 使用uview中的u-upload上传图片