<appender name="SIFT" class="ch.qos.logback.classic.sift.SiftingAppender">
<discriminator>
<key>PORT</key>
<defaultValue>8001</defaultValue>
</discriminator>
<sift>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/server.log.${PORT}</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- hourly rollover -->
<fileNamePattern>logs/server.log.${PORT}.%d{yyyy-MM-dd-hh}.gz</fileNamePattern>
<!-- keep 72 hours' worth of history -->
<maxHistory>72</maxHistory>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%date{yyyy/MM/dd HH:mm:ss.SSS Z}|%level|${lrmhost}|${Pid}|%thread|%class{1}|%M|%X{trackingID}|%X{userID} - %m%n%ex{full}</Pattern>
</layout>
</appender>
</sift>
</appender>
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="SIFT" />
<includeCallerData>true</includeCallerData>
<queueSize>5000</queueSize>
<discardingThreshold>0</discardingThreshold>
</appender>
<root level="info">
<appender-ref ref="ASYNC" />
</root>