by Eunmin Kim
JSON 형태로 로그를 남기고 싶습니다.
JSON 로그를 지원하는 [structured-logging(https://github.com/puppetlabs/structured-logging) 라이브러리 의존성을 추가합니다.
[puppetlabs/structured-logging "0.2.0"]Logger 구현체인 logback-classic 의존성을 추가합니다.
[ch.qos.logback/logback-classic "1.1.3"]JSON 로그 형식을 위해 아래와 같은 logback.xml 파일을 resources 아래 만듭니다.
<configuration>
<statusListener class="ch.qos.logback.core.status.NopStatusListener" />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<timestamp/>
<message/>
<loggerName/>
<threadName/>
<logLevel/>
<logLevelValue/>
<stackTrace/>
<logstashMarkers/>
</providers>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="STDOUT" />
</root>
</configuration>(require '[puppetlabs.structured-logging.core :refer [maplog]])
(maplog :warn {:user-service "https://..."
:status 503
:elapsed 27}
#(format "Failed to query user-service %s. Response: status %d"
(:user-service %) (:status %))){"@timestamp":"2018-08-29T21:50:34.639+09:00","message":"Failed to query user-service https://.... Response: status 503","logger_name":"app.core","thread_name":"main","level":"WARN","level_value":30000,"user-service":"https://...","status":503,"elapsed":27}