最近工作遇上比较麻烦的需求。
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.