springboot自带logback日志,实现日志滚动切割,防止日志文件过大。

一、springboot自带 yml文件配置

logging:  #级别  level:    root: DEBUG  #文件名  file:    name: log/zxh-test.log  #切割设置  logback:    rollingpolicy:      #文件格式      file-name-pattern: ${LOG_FILE}.%d{yyyy-MM-dd}.%i.log      #重启是否删除过期日志      clean-history-on-start: false      #文件大小 测试设置为1KB。请批改      max-file-size: 1KB      #日志总大小      total-size-cap: 0      #保留天数      max-history: 15

官网文档:springboot logback配置 官网文档

留神:

如需设置门路,请间接在logging.file.name中加前缀,配置path不会起作用。只设置path,name会是spring.log。官网写的很分明。
后果图:

二、自定义切割 筛选谬误日志。

application.yml。path和name都须要。辨别门路和名字。和下面不同。

logging:  #级别  level:    root: DEBUG  #文件名  file:    name: zxh-test    path: log  #切割设置  logback:    rollingpolicy:      #文件格式      file-name-pattern: ${LOG_FILE}.%d{yyyy-MM-dd}.%i.log      #重启是否删除过期日志      clean-history-on-start: false      #文件大小 测试设置为1KB。请批改      max-file-size: 10KB      #日志总大小      total-size-cap: 0      #保留天数      max-history: 15

减少配置文件。文件名肯定是logback-spring.xml (官网定义)

<?xml version="1.0" encoding="UTF-8"?><!--scan:当此属性设置为true时,配置文件如果产生扭转,将会被从新加载,默认值为true。scanPeriod:设置监测配置文件是否有批改的工夫距离,如果没有给出工夫单位,默认单位是毫秒当scan为true时,此属性失效。默认的工夫距离为1分钟。debug:当此属性设置为true时,将打印出logback外部日志信息,实时查看logback运行状态。默认值为false。--><configuration scan="true" scanPeriod="60 seconds" debug="false">    <!--springboot 自带配置 defaults.xml console-appender.xml-->    <include resource="org/springframework/boot/logging/logback/defaults.xml" />    <include resource="org/springframework/boot/logging/logback/console-appender.xml"/>    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">        <encoder>            <pattern>${FILE_LOG_PATTERN}</pattern>            <charset>${FILE_LOG_CHARSET}</charset>        </encoder>        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <!--文件格式-->            <fileNamePattern>${LOG_PATH}/${LOG_FILE}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>            <!--重启是否革除日志-->            <cleanHistoryOnStart>${LOGBACK_ROLLINGPOLICY_CLEAN_HISTORY_ON_START:-false}</cleanHistoryOnStart>            <!--文件最大大小-->            <maxFileSize>${LOGBACK_ROLLINGPOLICY_MAX_FILE_SIZE:-10MB}</maxFileSize>            <!--被删除之前最大大小-->            <totalSizeCap>${LOGBACK_ROLLINGPOLICY_TOTAL_SIZE_CAP:-0}</totalSizeCap>            <!--保留天数-->            <maxHistory>${LOGBACK_ROLLINGPOLICY_MAX_HISTORY:-7}</maxHistory>        </rollingPolicy>    </appender>    <!--谬误日志筛选-->    <appender name="FILE-ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">        <encoder>            <pattern>${FILE_LOG_PATTERN}</pattern>            <charset>${FILE_LOG_CHARSET}</charset>        </encoder>        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">            <level>ERROR</level>        </filter>        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <!--文件格式-->            <fileNamePattern>${LOG_PATH}/error/${LOG_FILE}.error.%d{yyyy-MM-dd}.%i.log</fileNamePattern>            <!--重启是否革除日志-->            <cleanHistoryOnStart>${LOGBACK_ROLLINGPOLICY_CLEAN_HISTORY_ON_START:-false}</cleanHistoryOnStart>            <!--文件最大大小-->            <maxFileSize>${LOGBACK_ROLLINGPOLICY_MAX_FILE_SIZE:-10MB}</maxFileSize>            <!--被删除之前最大大小-->            <totalSizeCap>${LOGBACK_ROLLINGPOLICY_TOTAL_SIZE_CAP:-0}</totalSizeCap>            <!--保留天数-->            <maxHistory>${LOGBACK_ROLLINGPOLICY_MAX_HISTORY:-7}</maxHistory>        </rollingPolicy>    </appender>    <!--辨别环境。在yml文件中配置spring.profiles.active。 零碎输入 or 所有日志 or 谬误日志 -->    <springProfile name="dev">        <!--输入形式-->        <root>            <!--零碎打印。 会生成默认文件,但理论不会输入到文件-->            <appender-ref ref="CONSOLE"/>        </root>    </springProfile>    <springProfile name="prod">        <root>            <!--零碎-->            <appender-ref ref="CONSOLE"/>            <!--所有文件-->            <appender-ref ref="FILE"/>            <!--谬误文件-->            <appender-ref ref="FILE-ERROR"/>        </root>    </springProfile></configuration>

后果图: