log4j2中的PatternLayout双引号转义字符

时间:2014-06-19 22:26:01

标签: java 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");

2 个答案:

答案 0 :(得分:9)

在您的模式中,只需将\"替换为&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"

答案 1 :(得分:0)

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

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