Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

logback: gzip rolling log files automatically

File compression format can be specified via fileNamePattern property.

 

Example

rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
fileNamePattern>${LOG_FILES_HOME}/app-%d{yyyy-MM-dd}.%i.log.gzfileNamePattern>

maxFileSize>1MBmaxFileSize>
maxHistory>30maxHistory>
totalSizeCap>20GBtotalSizeCap>
rollingPolicy>

 

Find the below working application.

 

Step 1: Create new maven project ‘logback-zip-log-files’.

 

Step 2: Update pom.xml with maven dependencies,

 

pom.xml

 

project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
modelVersion>4.0.0modelVersion>
groupId>com.sample.appgroupId>
artifactId>logback-zip-log-filesartifactId>
version>1version>

properties>
maven.compiler.source>1.8maven.compiler.source>
maven.compiler.target>1.8maven.compiler.target>
properties>

dependencies>

dependency>
groupId>ch.qos.logbackgroupId>
artifactId>logback-classicartifactId>
version>1.2.10version>
dependency>

dependency>
groupId>ch.qos.logbackgroupId>
artifactId>logback-coreartifactId>
version>1.2.10version>
dependency>

dependency>
groupId>org.slf4jgroupId>
artifactId>slf4j-apiartifactId>
version>1.7.36version>
dependency>


dependencies>
project>

 

Step 3: Create logback.xml file under src/main/resources folder.

 

logback.xml

 

xml version="1.0" encoding="UTF-8"?>
configuration scan="true">
property name="LOG_FILES_HOME" value="/Users/Shared/logback" />

appender name="consoleAppender"
class="ch.qos.logback.core.ConsoleAppender">
encoder>
charset>UTF-8charset>
Pattern>%d %-4relative [%thread] %-5level %logger{35} - %msg%n
Pattern>
encoder>
appender>


appender name="FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
file>${LOG_FILES_HOME}/app.logfile>

rollingPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
fileNamePattern>${LOG_FILES_HOME}/app-%d{yyyy-MM-dd}.%i.log.gz
fileNamePattern>

maxFileSize>1MBmaxFileSize>
maxHistory>30maxHistory>
totalSizeCap>20GBtotalSizeCap>
rollingPolicy>


encoder>
charset>UTF-8charset>
pattern>%d %-4relative [%thread] %-5level %logger{35} - %msg%n
pattern>
encoder>
appender>

root level="DEBUG">
appender-ref ref="consoleAppender" />
appender-ref ref="FILE" />
root>
configuration>

 

Step 4: Define HelloWorld class.

 

HelloWorld.java

 

package com.sample.app;

import java.util.concurrent.TimeUnit;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class HelloWorld {
private static Logger logger = LoggerFactory.getLogger(HelloWorld.class);

private static void sleep(int noOfSeconds) {
try {
TimeUnit.SECONDS.sleep(noOfSeconds);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public static void main(String[] args) {

while (true) {
for (int i = 0; i 10000; i++) {
logger.trace("Trace message");
logger.debug("Debug message");
logger.info("Info message");
logger.warn("Warning message");
logger.error("Error message");
}

sleep(1);

}

}
}

 

Total project structure looks like below.


 


 

Run HelloWorld.java application.

 

You can observe that log files are compressed to .gz format in /Users/Shared/logback folder.

 

$ls -lart
total 2456
drwxrwxrwt 15 root wheel 480 Feb 25 15:39 ..
-rw-r--r-- 1 krishna wheel 9193 Feb 25 15:45 app-2022-02-25.0.log.gz
-rw-r--r-- 1 krishna wheel 8201 Feb 25 15:45 app-2022-02-25.1.log.gz
-rw-r--r-- 1 krishna wheel 8058 Feb 25 15:45 app-2022-02-25.2.log.gz
drwxr-xr-x 7 krishna wheel 224 Feb 25 15:45 .
-rw-r--r-- 1 krishna wheel 1215810 Feb 25 15:45 app.log

You can download the complete working application from below link.

https://github.com/harikrishna553/java-libs/tree/master/logback/logback-zip-log-files


Previous                                                 Next                                                 Home


This post first appeared on Java Tutorial : Blog To Learn Java Programming, please read the originial post: here

Share the post

logback: gzip rolling log files automatically

×

Subscribe to Java Tutorial : Blog To Learn Java Programming

Get updates delivered right to your inbox!

Thank you for your subscription

×