最近工作遇上比較麻煩的需求。
1、利用log4j記錄日誌。
2、在記錄的log中要求可以格式化控制輸出該日誌的發生源的服務器名(公司用weblogic 也就是顯示Managed server名稱)。
經過分析源代碼發現。在log4j的屬性中有一個專門用於擴展的關鍵字'X'。
用法如下:
在loggingEvent 發出前,可以調用其setProperty方法擴展其屬性:
event.setProperty("title", "TitleMessage");
在設置完擴展屬性後(添加類Constant方法存放Key值),再交給各個Appender處理。
此處將用到的Appender中的public void append(LoggingEvent event)覆蓋,
讓其在運行原邏輯前將需要屬性設置。
在配置文件中配置:
運行代碼片段:
logger.error("This to test the X key run.");
運行結果:
[TitleMessage]his to test the X key run.