我有以下的logback图案:进程ID中的logback记录模式
<pattern>
{"hostname": "${HOSTNAME}",
"level": "%p",
"method": "%M",
"process_id": "${process}",
"thread_id": "%t",
"timestamp": "%d{Y-M-d}T%d{H:M:S.s}",
"mesg":"%msg"}%n
</pattern>
不幸的是,当实际产生的日志消息我看到:"process_id": "process_IS_UNDEFINED"
是否有任何自动设置的进程id,这样的可变如同主机名一样?我在查找logback文档中的这些自动设置变量的文档列表时遇到了很多麻烦,是否有人知道更好的文档来源?
编辑:我知道映射诊断上下文的,但希望的是内置的解决方案,并不需要这样的设置,就像主机是如何工作的。
这是我意识到的解决方案,但它很烦人,因为它需要修改我们的实际代码。无论如何在修改应用程序代码之外设置MDC?也许通过编写一个单独的类来修改MDC并将其放在类路径上? – qwwqwwq
@qwwqwwq我不确定是否有一些记录的方式来做到这一点。我想你可以重载'ch.qos.logback.classic.PatternLayoutBase'类并将你的转换器放在'defaultConverterMap'中。但这是一个肮脏的黑客:) – vsminkov
@qwwqwwq还有另一种方法。您可以从'ch.qos.logback.classic.PatternLayout'实际上继承,并用它在你的logback.xml像[这里](http://logback.qos.ch/manual/layouts.html)。 – vsminkov