Sib*_*ish 4 java logging log4j log4j2
我需要创建具有键值对的日志,如下所示.在PatternLayout中是否支持使用log4j2.xml为log_level,class_name,event_id等线程中的静态字段执行此操作.
样本日志:
2014年6月18日11:57:46719 LOG_LEVEL = "INFO" CLASS_NAME = "com.abc.dgl.App:main(158)" 名称= "应用程序启动事件" 事项标识="b88f7ea0-4cb1-438f-A728-ac7c2bdac578 "程序="测试应用程序"严重性='信息’行动='稳定部队加载文件处理’DESC ='道具被读取并加载’结果='成功’的原因='ABC’TRANSACTION_ID =" b88f7ea0-4cb1-438f-a728- ac7c2bdac578"
是的,这是可能的.
您可以使用MapMessage,它由PatternLayout的map(或K)转换模式支持:示例布局模式."%-5p [%t]: %m %map%n"
记录MapMessage如下所示: Map<String,String> myMap = getMyMap(); Logger.debug(new MapMessage(myMap));
另一种方法是使用ThreadContext映射.这受到PatternLayout 的mdc(或X)转换模式的支持.示例模式:"%-5p [%t]: %m %mdc%n".一种常见的用法是在用户登录时将用户ID放在线程上下文映射中,并在该线程发出的所有日志消息中显示此用户ID,直到用户注销为止.
您也可以仅通过在布局模式中指定键来记录特定键,而不是记录整个映射:例如"%-5p [%t]: %m %mdc{userID}%n".
| 归档时间: |
|
| 查看次数: |
7920 次 |
| 最近记录: |