servicemix中的一个日志包含一个日志文件

问题描述:

我想每个包都有一个日志文件。这是我配置的ServiceMix:servicemix中的一个日志包含一个日志文件

log4j.appender.bpa=org.apache.log4j.sift.MDCSiftingAppender 
log4j.appender.bpa.key=app.name 
log4j.appender.bpa.default=bpa 
log4j.appender.bpa.appender=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.bpa.appender.DatePattern='.'yyyy-MM-dd 
log4j.appender.bpa.appender.layout=org.apache.log4j.PatternLayout 
log4j.appender.bpa.appender.layout.ConversionPattern=%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n 
log4j.appender.bpa.appender.file=${karaf.data}/log/${bundle.name}.log 
log4j.appender.bpa.appender.append=true 

log4j.category.com.apba.bpa=INFO, bpa 

但结果显示登录名org.apache.camel.camel-core.log而不是我的包的名称。

有什么问题?谢谢

您必须更新配置才能根据软件包名称进行筛选,或者在登录应用程序和骆驼路由时使用“MDC”功能。

尝试增加这配置:

log4j.appender.sift.key=bundle.name 

与骆驼路线美中不足的是,所有的日志将是骆驼核心软件包,也许你正在寻找没有什么。在代码和路由中明确使用MDC标识符的最佳实践。

查看JBO的完整博客:http://blog.nanthrax.net/2014/08/mdc-logging-with-apache-karaf-and-camel/