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>
后果图: