如何配置 Karaf org.ops4j.pax.logging.cfg 以使用基于 log4j2 日志记录类别的筛选附加程序

How to configure Karaf org.ops4j.pax.logging.cfg to use a sift appender based on the log4j2 logging category

我正在使用 Karaf 和 Camel,并且能够配置 PAX 日志记录以筛选 MDC 字段 (camel.routeId),并且工作正常。

我想知道我是否可以配置 log4j2 以筛选日志记录类别字段(log4j2 转换模式术语中的 %c 或 %logger),或者是否有人可以指出我如何进行的正确方向配置它。

Log4j2(pax-logging-log4j2)是"sifting"基于MDC数据的。默认情况下 logger/category 不是此上下文数据的一部分。但是,您可以自己将记录器名称添加到 MDC。

在 pax-logging-log4j2 中,org.ops4j.pax.logging.log4j2.internal.PaxLoggerImpl#setDelegateContext() 方法设置 3 keys:

  • bundle.id
  • bundle.name
  • bundle.version

Camel 在 org.apache.camel.impl.MDCUnitOfWork 构造函数中设置自己的键(如 context-id)。