Skip to content

Commit

Permalink
perf($Logback): use async appender for logging
Browse files Browse the repository at this point in the history
[skip ci]
  • Loading branch information
johnnymillergh committed Sep 22, 2021
1 parent 2f4fae4 commit 4b40ac2
Show file tree
Hide file tree
Showing 30 changed files with 181 additions and 53 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,19 @@
</encoder>
</appender>

<!-- https://examples.javacodegeeks.com/enterprise-java/logback/logback-ayncappender-example/ -->
<appender name="ASYNC_CONSOLE" class="ch.qos.logback.classic.AsyncAppender">
<!-- default 20, means drop lower event when has 20% capacity remaining -->
<discardingThreshold>0</discardingThreshold>
<appender-ref ref="CONSOLE"/>
<!-- default 256 -->
<queueSize>256</queueSize>
<!-- default false -->
<includeCallerData>false</includeCallerData>
<!-- default false, set to true to cause the Appender not block the application and just drop the messages -->
<neverBlock>true</neverBlock>
</appender>

<!-- FILE Log Configuration -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
Expand All @@ -65,14 +78,27 @@
<!-- in particular if post-processing tools impose size limits on the log files. -->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>${LOG_HOME}/${APPLICATION}-${ENVIRONMENT}-${HOSTNAME}.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
<fileNamePattern>${LOG_HOME}/${APPLICATION}-${ENVIRONMENT}-${HOSTNAME}.%d{yyyy-MM-dd}.%i.log.gz
</fileNamePattern>
<!-- each file should be at most 5MB, keep 7 days worth of history, but at most 1GB -->
<maxFileSize>5MB</maxFileSize>
<maxHistory>7</maxHistory>
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
</appender>

<appender name="ASYNC_FILE" class="ch.qos.logback.classic.AsyncAppender">
<!-- default 20, means drop lower event when has 20% capacity remaining -->
<discardingThreshold>0</discardingThreshold>
<appender-ref ref="FILE"/>
<!-- default 256 -->
<queueSize>256</queueSize>
<!-- default false -->
<includeCallerData>false</includeCallerData>
<!-- default false, set to true to cause the Appender not block the application and just drop the messages -->
<neverBlock>false</neverBlock>
</appender>

<!-- LOGSTASH -->
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>${LOGSTASH_HOST}:4560</destination>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

<!-- Log Level -->
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<appender-ref ref="ASYNC_CONSOLE"/>
<appender-ref ref="ASYNC_FILE"/>
<appender-ref ref="LOGSTASH"/>
</root>
</configuration>
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

<!-- Log Level -->
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<appender-ref ref="ASYNC_CONSOLE"/>
<appender-ref ref="ASYNC_FILE"/>
<appender-ref ref="LOGSTASH"/>
</root>
</configuration>
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

<!-- Log Level -->
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<appender-ref ref="ASYNC_CONSOLE"/>
<appender-ref ref="ASYNC_FILE"/>
<appender-ref ref="LOGSTASH"/>
</root>
</configuration>
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

<!-- Log Level -->
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<appender-ref ref="ASYNC_CONSOLE"/>
<appender-ref ref="ASYNC_FILE"/>
<appender-ref ref="LOGSTASH"/>
</root>
</configuration>
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

<!-- Log Level -->
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<appender-ref ref="ASYNC_CONSOLE"/>
<appender-ref ref="ASYNC_FILE"/>
<appender-ref ref="LOGSTASH"/>
</root>
</configuration>
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,19 @@
</encoder>
</appender>

<!-- https://examples.javacodegeeks.com/enterprise-java/logback/logback-ayncappender-example/ -->
<appender name="ASYNC_CONSOLE" class="ch.qos.logback.classic.AsyncAppender">
<!-- default 20, means drop lower event when has 20% capacity remaining -->
<discardingThreshold>0</discardingThreshold>
<appender-ref ref="CONSOLE"/>
<!-- default 256 -->
<queueSize>256</queueSize>
<!-- default false -->
<includeCallerData>false</includeCallerData>
<!-- default false, set to true to cause the Appender not block the application and just drop the messages -->
<neverBlock>true</neverBlock>
</appender>

<!-- FILE Log Configuration -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
Expand All @@ -74,6 +87,18 @@
</rollingPolicy>
</appender>

<appender name="ASYNC_FILE" class="ch.qos.logback.classic.AsyncAppender">
<!-- default 20, means drop lower event when has 20% capacity remaining -->
<discardingThreshold>0</discardingThreshold>
<appender-ref ref="FILE"/>
<!-- default 256 -->
<queueSize>256</queueSize>
<!-- default false -->
<includeCallerData>false</includeCallerData>
<!-- default false, set to true to cause the Appender not block the application and just drop the messages -->
<neverBlock>false</neverBlock>
</appender>

<!-- LOGSTASH -->
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>${LOGSTASH_HOST}:4560</destination>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

<!-- Log Level -->
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<appender-ref ref="ASYNC_CONSOLE"/>
<appender-ref ref="ASYNC_FILE"/>
<appender-ref ref="LOGSTASH"/>
</root>
</configuration>
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

<!-- Log Level -->
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<appender-ref ref="ASYNC_CONSOLE"/>
<appender-ref ref="ASYNC_FILE"/>
<appender-ref ref="LOGSTASH"/>
</root>
</configuration>
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

<!-- Log Level -->
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<appender-ref ref="ASYNC_CONSOLE"/>
<appender-ref ref="ASYNC_FILE"/>
<appender-ref ref="LOGSTASH"/>
</root>
</configuration>
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

<!-- Log Level -->
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<appender-ref ref="ASYNC_CONSOLE"/>
<appender-ref ref="ASYNC_FILE"/>
<appender-ref ref="LOGSTASH"/>
</root>
</configuration>
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

<!-- Log Level -->
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<appender-ref ref="ASYNC_CONSOLE"/>
<appender-ref ref="ASYNC_FILE"/>
<appender-ref ref="LOGSTASH"/>
</root>
</configuration>
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,19 @@
</encoder>
</appender>

<!-- https://examples.javacodegeeks.com/enterprise-java/logback/logback-ayncappender-example/ -->
<appender name="ASYNC_CONSOLE" class="ch.qos.logback.classic.AsyncAppender">
<!-- default 20, means drop lower event when has 20% capacity remaining -->
<discardingThreshold>0</discardingThreshold>
<appender-ref ref="CONSOLE"/>
<!-- default 256 -->
<queueSize>256</queueSize>
<!-- default false -->
<includeCallerData>false</includeCallerData>
<!-- default false, set to true to cause the Appender not block the application and just drop the messages -->
<neverBlock>true</neverBlock>
</appender>

<!-- FILE Log Configuration -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
Expand All @@ -65,14 +78,27 @@
<!-- in particular if post-processing tools impose size limits on the log files. -->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>${LOG_HOME}/${APPLICATION}-${ENVIRONMENT}-${HOSTNAME}.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
<fileNamePattern>${LOG_HOME}/${APPLICATION}-${ENVIRONMENT}-${HOSTNAME}.%d{yyyy-MM-dd}.%i.log.gz
</fileNamePattern>
<!-- each file should be at most 5MB, keep 7 days worth of history, but at most 1GB -->
<maxFileSize>5MB</maxFileSize>
<maxHistory>7</maxHistory>
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
</appender>

<appender name="ASYNC_FILE" class="ch.qos.logback.classic.AsyncAppender">
<!-- default 20, means drop lower event when has 20% capacity remaining -->
<discardingThreshold>0</discardingThreshold>
<appender-ref ref="FILE"/>
<!-- default 256 -->
<queueSize>256</queueSize>
<!-- default false -->
<includeCallerData>false</includeCallerData>
<!-- default false, set to true to cause the Appender not block the application and just drop the messages -->
<neverBlock>false</neverBlock>
</appender>

<!-- LOGSTASH -->
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>${LOGSTASH_HOST}:4560</destination>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

<!-- Log Level -->
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<appender-ref ref="ASYNC_CONSOLE"/>
<appender-ref ref="ASYNC_FILE"/>
<appender-ref ref="LOGSTASH"/>
</root>
</configuration>
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

<!-- Log Level -->
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<appender-ref ref="ASYNC_CONSOLE"/>
<appender-ref ref="ASYNC_FILE"/>
<appender-ref ref="LOGSTASH"/>
</root>
</configuration>
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

<!-- Log Level -->
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<appender-ref ref="ASYNC_CONSOLE"/>
<appender-ref ref="ASYNC_FILE"/>
<appender-ref ref="LOGSTASH"/>
</root>
</configuration>
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

<!-- Log Level -->
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<appender-ref ref="ASYNC_CONSOLE"/>
<appender-ref ref="ASYNC_FILE"/>
<appender-ref ref="LOGSTASH"/>
</root>
</configuration>
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

<!-- Log Level -->
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<appender-ref ref="ASYNC_CONSOLE"/>
<appender-ref ref="ASYNC_FILE"/>
<appender-ref ref="LOGSTASH"/>
</root>
</configuration>
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,19 @@
</encoder>
</appender>

<!-- https://examples.javacodegeeks.com/enterprise-java/logback/logback-ayncappender-example/ -->
<appender name="ASYNC_CONSOLE" class="ch.qos.logback.classic.AsyncAppender">
<!-- default 20, means drop lower event when has 20% capacity remaining -->
<discardingThreshold>0</discardingThreshold>
<appender-ref ref="CONSOLE"/>
<!-- default 256 -->
<queueSize>256</queueSize>
<!-- default false -->
<includeCallerData>false</includeCallerData>
<!-- default false, set to true to cause the Appender not block the application and just drop the messages -->
<neverBlock>true</neverBlock>
</appender>

<!-- FILE Log Configuration -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
Expand All @@ -74,6 +87,18 @@
</rollingPolicy>
</appender>

<appender name="ASYNC_FILE" class="ch.qos.logback.classic.AsyncAppender">
<!-- default 20, means drop lower event when has 20% capacity remaining -->
<discardingThreshold>0</discardingThreshold>
<appender-ref ref="FILE"/>
<!-- default 256 -->
<queueSize>256</queueSize>
<!-- default false -->
<includeCallerData>false</includeCallerData>
<!-- default false, set to true to cause the Appender not block the application and just drop the messages -->
<neverBlock>false</neverBlock>
</appender>

<!-- LOGSTASH -->
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>${LOGSTASH_HOST}:4560</destination>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

<!-- Log Level -->
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<appender-ref ref="ASYNC_CONSOLE"/>
<appender-ref ref="ASYNC_FILE"/>
<appender-ref ref="LOGSTASH"/>
</root>
</configuration>
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

<!-- Log Level -->
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<appender-ref ref="ASYNC_CONSOLE"/>
<appender-ref ref="ASYNC_FILE"/>
<appender-ref ref="LOGSTASH"/>
</root>
</configuration>
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

<!-- Log Level -->
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<appender-ref ref="ASYNC_CONSOLE"/>
<appender-ref ref="ASYNC_FILE"/>
<appender-ref ref="LOGSTASH"/>
</root>
</configuration>
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

<!-- Log Level -->
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<appender-ref ref="ASYNC_CONSOLE"/>
<appender-ref ref="ASYNC_FILE"/>
<appender-ref ref="LOGSTASH"/>
</root>
</configuration>
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

<!-- Log Level -->
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<appender-ref ref="ASYNC_CONSOLE"/>
<appender-ref ref="ASYNC_FILE"/>
<appender-ref ref="LOGSTASH"/>
</root>
</configuration>
Loading

0 comments on commit 4b40ac2

Please sign in to comment.