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>
最终会在项目如下位置生成日志记录文件