0

logstash-logback-encoder を使用してログを json 形式で出力しています。

以下は私のlogback-spring.xmlです

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="sample" class = "org.ssn.app.config.CustomLogService">
</appender>
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder class="net.logstash.logback.encoder.LogstashEncoder">
    <provider class="net.logstash.logback.composite.loggingevent.ArgumentsJsonProvider"/>
    </encoder> 
    
 
  </appender>
  <logger name="org.ssn.app" additivity="false" level="DEBUG">
    <appender-ref ref="STDOUT"/>
</logger>
  <root level="INFO">
  
    <appender-ref ref="STDOUT"/>
    
  </root> 
  
  
</configuration>
  1. 私のコードスニペットの下
    JSONObject lJsonObj = new JSONObject();
    lJsonObj.put("dl_no","DL10252");
    logger.debug(lJsonObj.toString,Markers.append("ss","sss"));
  1. 出力は以下のとおりです
{
    "@timestamp": "2021-06-17T18:49:07.914+05:30",
    "@version": "1",
    "message": "{\"dl_no\":\"DL10252\"}",
    "logger_name": "org.ssn.app.controller.TestController1",
    "thread_name": "http-nio-8080-exec-1",
    "level": "DEBUG",
    "level_value": 10000,
    "ss": "sss"
}

"\" >バックスラッシュを避けるために、メッセージ属性の値のデータ型を変更する方法はありますか? 通常、メッセージ属性の >value 内に JSON またはネストされた JSON を配置し、バックスラッシュなしでそれらを表示したいためです

4

1 に答える 1