java-logback记录日志到指定文件并且压缩保存日志

yml配置文件中加入如下配置:

logging:
  config: classpath:logback-spring.xml #项目根目录下的xml配置文件
  level:
    root: info 全局日志的级别
  file:
    name: mes.log # 输出日志的名称

logback-spring.xml配置文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<!--scan属性为true时表示配置文件如果发生变更,将会被重新加载;scanPeriod默认单位是毫秒-->
<configuration debug="false" scan="true" scanPeriod="3 seconds">

    <contextName>logback</contextName>
     <!--输出文件地址-->
    <property name="log.path" value="logs/mes/"/>
    <!--输出到控制台-->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH-mm-ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>info</level>
        </filter>
    </appender>

    <!--输出日志到文档-->
    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path}/mes.log</file>
        <!--日志记录器的滚动策略-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${log.path}/mes.log.%d{yyyy-MM-dd}.%i.zip</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10240KB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!--日志文档保存天数-->
            <!--<maxHistory>2</maxHistory>-->
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH-mm-ss.SSS} %level [%thread] %logger{36} [%file : %line] %msg%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>info</level>
        </filter>
    </appender>
    <!--root节点用于指定全局日志级别-->
    <root level="info">
        <appender-ref ref="console"/>
        <appender-ref ref="file"/>
    </root>
    <!--指定具体包目录下的日志级别,可用于日志输出过滤,此处配置的优先级高于root配置的日志输出级别-->
    <logger level = 'warn' name = 'org.springframework'/>
    <logger level = 'info' name = 'com.baomidou.mybatisplus'/>
    <logger level = 'error' name = 'com.alibaba'/>
	 <!--过滤swagger的日志 使用logback会记录到swagger的报错日志,这个日志可以忽略-->
    <logger name="io.swagger.models.parameters.AbstractSerializableParameter" level="ERROR"/>
</configuration>

最终会在项目如下位置生成日志记录文件
在这里插入图片描述