具有自定义字符串值的logback编码器模式

时间:2017-07-05 05:22:43

标签: logback

以下是我当前的logback编码器模式,

<encoder>
            <pattern>%d{yyyy.MM.dd HH:mm:ss} | %-5level | [%thread] | \(%class{25}:%line\) - %msg%n</pattern>
</encoder>

例如: 2017-06-05 11:15:21 |调试| [Thread-10] | (c.s.n.f.s.m.NmsngMessagingImpl:450) - 控制达到send()

在java类中,logger的一个例子如下所示,

logger.info(&#34;收到邮件请求&#34; + messRecv);

上述模式适用于所示示例。

现在我有另一个例子,如下所示,

[时间戳] [日志级别] [SYSTEMID] [包] [类] [方法] [ID]消息

systemId id 是自定义值的新条目。

我可以知道如何通过记录器传递它们。

1 个答案:

答案 0 :(得分:1)

您可以将它们添加到MDC

MDC.put("systemId", "value");
MDC.put("id", "value2");

MDC(映射的诊断上下文)是按线程管理的键值对映射。

可以通过%X {mdcName}在配置中引用它们,因此您的模式将如下所示:

<pattern>%d{yyyy.MM.dd HH:mm:ss} | %-5level | %X{systemId} ... %msg%n</pattern>

%X {systemId}将替换为MDC中“systemId”的线程值。