我正在使用第三方软件包的logback,它在代码运行时在MDC中设置标识符。其余时间,此标识符未设置。因此,如果我使用PatternLayout
[%X{id}] %m%n
,那么我会看到像
[Foo] Foo running
[Bar] Bar running
与包相关的消息。但是,我的其余日志语句看起来像
[] Thing happened
%X{id}
在存在时是有用的信息,但我希望在不存在时使用记录器名称。我试过了
[%X{id:-%logger{20}}]
和
[%X{id:-logger{20}}]
但未将记录器名称用作默认值。
我可以编写一个自定义布局,如果未设置id,则将id设置为记录器名称,转发到布局,然后清除字段。有更简单的方法吗?