问题描述
我正在尝试将 logback 与在 ServiceMix 下运行的 Karaf 3.0.5 一起使用.这就是我迄今为止所做的事情,如本中所述问题.
I am trying to use logback with Karaf 3.0.5 running under ServiceMix. This is what I have done till now as mentioned in this question.
这就是我到现在为止所做的:-
This is what I have done till now:-
- 通过执行
uninstall <pax-logging-bundle-id>
删除了 - 删除了
lib/bin/karaf-client.jar
- 在
lib
里面放置了以下jars:-jcl-over-slf4j-1.7.13
,jul-to-slfj-17.13.jar
、logback-classic-1.0.13.jar
、logback-core-1.0.13.jar
&osgi-over-slf4j-1.7.13.jar
- 从
/etc/startup.properties
- 删除对pax-logging-service
和pax-logging-api
的引用 - 在
etc/config.properties
下的org.osgi.framework.system.packages.extra
添加了以下包:-ch.qos.logback;版本="1.0.13", \org.slf4j;版本="1.7.13", \ - 创建一个
logback.xml
并将其放置在/etc
中. - 注释掉
etc/org.ops4j.pax.logging.cfg
中的所有内容 - 在
etc/system.properties
中添加logback.configurationFile="etc/logback.xml"
pax-logging-service
- Removed
pax-logging-service
by doinguninstall <pax-logging-bundle-id>
- Removed
lib/bin/karaf-client.jar
- Inside
lib
placed the following jars:-jcl-over-slf4j-1.7.13
,jul-to-slfj-17.13.jar
,logback-classic-1.0.13.jar
,logback-core-1.0.13.jar
&osgi-over-slf4j-1.7.13.jar
- From
/etc/startup.properties
- removed references topax-logging-service
andpax-logging-api
- In
etc/config.properties
underorg.osgi.framework.system.packages.extra
added the following packages:-ch.qos.logback; version="1.0.13", \org.slf4j; version="1.7.13", \
- Created a
logback.xml
and and placed it inside/etc
. - Commented out everything in
etc/org.ops4j.pax.logging.cfg
- In
etc/system.properties
addlogback.configurationFile="etc/logback.xml"
我的 logback.xml
如下所示:-
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
</appender>
<appender name="FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>/var/log/workflow/WorkFlow.%d{yyyy-MM-dd}.log
</fileNamePattern>
<maxHistory>7</maxHistory>
</rollingPolicy>
</appender>
<root level="info">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
</configuration>
Karaf 信息报告以下内容:-
Karaf info reports the following:-
karaf@root>info
Karaf
Karaf version 3.0.5
Karaf home /home/jabong/Downloads/software/dev/apache-servicemix-6.1.0
Karaf base /home/jabong/Downloads/software/dev/apache-servicemix-6.1.0
Karaf etc /home/jabong/Downloads/software/dev/apache-servicemix-6.1.0/etc
OSGi Framework org.apache.felix.framework - 4.2.1
但是在进行上述更改后,我们在 /var/log/workflow
下没有看到任何日志文件,也没有看到信息日志.
But after making the above changes we are not seeing any log file under /var/log/workflow
nor I am seeing the info logs.
推荐答案
要解决这个问题,你可以将你的 pax-logging-logback jar 放在 karaf/servicemix 的系统目录下,然后你可以替换你的 org.ops4j.pax.logging 与以下配置.
To resolve this issue, you could place your pax-logging-logback jar under the system directory of the karaf/servicemix and then you could replace your org.ops4j.pax.logging with below configuration.
# use logback config
org.ops4j.pax.logging.logback.config.file=${karaf.base}/config/logback.xml
# set default 'osgi' logging level
org.ops4j.pax.logging.DefaultServiceLog.level=WARN
并将您的 logback.xml 放在 config 文件夹下.
And place your logback.xml under config folder.
这篇关于将 logback 与在 ServiceMix 下运行的 Karaf 3.0.5 一起使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!