log4j教程
log4j技术
log4j案例
Log4j2技术
log42j案例
Logback技术
Logback案例

logback案例5-日志文件超过指定大小后进行打包

创建项目

编写日志配置

<?xml version="1.0" encoding="UTF-8" ?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">

    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>
                [logback-demo] %d{yyyy-MM-dd HH:mm:ss.SSS} [%-5p] %c:%L - %m%n
            </pattern>
        </encoder>
    </appender>


    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--
            file:指定日志输出的位置及名称,位置可以相对的,也可以绝对的
        -->
        <file>c:/logger/file.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
            <!--
                当前日志超过指定大小之后进行压缩之后的文件名称及文件的位置,位置可以是相对的,也可以是绝对的
            -->
            <fileNamePattern>c:/logger/file.%i.log.gz</fileNamePattern>
            <!--
                minIndex和maxIndex:控制%i这个值的最小值和最大值,最多可以归档日志文件个数
            -->
            <minIndex>1</minIndex>
            <maxIndex>3</maxIndex>
        </rollingPolicy>

        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <!--
                maxFileSize:指定日志文件的最大存储值
            -->
            <maxFileSize>2kb</maxFileSize>
        </triggeringPolicy>

        <encoder>
            <pattern>
                [logback-demo] %d{yyyy-MM-dd HH:mm:ss.SSS} [%-5p] %c:%L - %m%n
            </pattern>
        </encoder>
    </appender>
    
    <root>
        <appender-ref ref="console"/>
        <appender-ref ref="file"/>
    </root>

</configuration>

编写测试类

public static void main(String[] args) {
        //创建日志记录对象
        Logger logger = LoggerFactory.getLogger(Demo.class);

        for (int i = 0; i < 100; i++) {
            logger.trace("This is TRACE message!");public class Demo {

            logger.debug("This is DEBUG message!");
            logger.info("This is INFO message!");
            logger.warn("This is WARN message!");
            logger.error("This is ERROR message!");
        }
    }