繁体   English   中英

log4j2中的PatternLayout双引号转义字符

[英]PatternLayout double quote escape character in log4j2

我需要登录log4j2,如下所示:

14:28:00.404 app_name =“splunk sample app”method_name = main desc =“sample log”

<PatternLayout pattern="%d app_name=\"%X{app_name}\" method_name=%M(%L) %m %n"/>

由于双引号,模式失败。 double quate的转义字符是什么,因此键值对的值在日志中的双引号内。

ThreadContext.put("app_name", "splunk sample app");

在您的模式中,只需将两个\\"替换为&quot;"字符"的XML实体):

<PatternLayout pattern="%d app_name=&quot;%X{app_name}&quot; method_name=%M(%L) %m %n"/>

然后它会记录你想要的东西:

14:28:00.404 app_name="splunk sample app" method_name=main desc="sample log"

现在正在添加对其他特殊字符(如\\ t)的支持( https://issues.apache.org/jira/browse/LOG4J2-682 )。

这没有进入Log4j-2.0-rc2,如果你想在2.0之前发布它,你需要从trunk构建才能使用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM