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/