log4j2中的PatternLayout双引号转义字符

Sib*_*ish 5 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"/>
Run Code Online (Sandbox Code Playgroud)

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

ThreadContext.put("app_name", "splunk sample app");
Run Code Online (Sandbox Code Playgroud)

xav*_*xav 10

在你的模式,只需更换这两个\"&quot;(用于将XML实体"字符):

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

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

14:28:00.404 app_name="splunk sample app" method_name=main desc="sample log"
Run Code Online (Sandbox Code Playgroud)