我有以下的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