我希望每个捆绑包都有一个日志文件。这是我在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而不是我的包的名称。
有什么问题?谢谢
答案 0 :(得分:0)
您必须根据捆绑名称更新配置以进行筛选,或者在登录应用程序和Camel路由时使用“MDC”功能。
尝试将此添加到配置:
log4j.appender.sift.key=bundle.name
Camel路由的问题是,所有日志都将用于camel-core软件包,可能不是你想要的。在代码和路由中明确使用MDC标识符的最佳实践。
请参阅JBO的完整博客:http://blog.nanthrax.net/2014/08/mdc-logging-with-apache-karaf-and-camel/