logback - s50600822/Notes GitHub Wiki
<!-- this file goes in src/main/resources/logback.xml -->
<configuration>
<!-- if the system property LOCAL is defined, we'll use a human-friendly log format -->
<if condition='isDefined("LOCAL")'>
<then>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
</then>
<else>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="ch.qos.logback.contrib.json.classic.JsonLayout">
<appendLineSeparator>true</appendLineSeparator>
<jsonFormatter class="ch.qos.logback.contrib.jackson.JacksonJsonFormatter" />
</layout>
</encoder>
</appender>
</else>
</if>
<!-- overriding the default log level per class / package -->
<!-- <logger name="com.example" level="INFO" /> -->
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>
LogstashEncoder
<configuration>
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
<customFields>{"commit" : "${git.commit.id}", "customer":"X", "appname":"Y", "environment":"dev"}</customFields>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="stdout"/>
</root>
</configuration>
With timestamp
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="stdout_json" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<timestamp>
<fieldName>time</fieldName>
<!--
net.logstash.logback.composite.AbstractFormattedTimestampJsonProvider
-->
<pattern>[UNIX_TIMESTAMP_AS_STRING]</pattern>
</timestamp>
<pattern>
<omitEmptyFields>true</omitEmptyFields>
<pattern>
{
"timestamp": "%date{ISO8601}",
"logger": "%logger",
"level": "%level",
"thread": "%thread",
"message": "%message",
"traceId": "%mdc{traceId}",
"spanId": "%mdc{spanId}"
}
</pattern>
</pattern>
</providers>
</encoder> </appender>
<root level="info">
<appender-ref ref="stdout_json" />
</root>
</configuration>