<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<property name="appName" value="gateway"/>
<property name="appVersion" value="1.0.0"/>
<springProfile name="default,dev">
<property name="logstashDest" value="172.20.15.52:5000"/>
<appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>${logstashDest}</destination>
<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<mdc/> <!-- MDC variables on the Thread will be written as JSON fields-->
<context/> <!--Outputs entries from logback's context -->
<version/> <!-- Logstash json format version, the @version field in the output-->
<logLevel/>
<loggerName/>
<pattern>
<pattern>
{
<!-- we can add some custom fields to be sent with all the log entries.-->
<!--make filtering easier in Logstash-->
"appName": "${appName}",
"appVersion": "${appVersion}"
}
</pattern>
</pattern>
<threadName/>
<message/>
<logstashMarkers/> <!-- Useful so we can add extra information for specific log lines as Markers-->
<arguments/> <!--or through StructuredArguments-->
<stackTrace/>
</providers>
</encoder>
</appender>
</springProfile>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<springProfile name="default,dev">
<appender-ref ref="logstash"/>
</springProfile>
</root>
</configuration>