赞
踩
为了平衡上面两个条件,我们可以压缩文件和保留一定时间(如7天)的历史文件。
我们使用的日志框架是logback,下面的配置也是以logback.xml为例
- <!-- error日志输出-保留7天 -->
- <appender name="ErrorFile"
- class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 正在记录的日志文件的路径及文件名 -->
- <File>${LOG_HOME:-c:/}logs/error/error.log</File>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!-- 基于时间和大小的轮转策略中fileNamePattern位置很重要,他决定了生成文件的名称及轮转时机,以及是否压缩 -->
- <!-- %d决定以什么时间维度轮转(但实际轮转时机取决于日志事件的到达时间),比如%d{yyyy/MM}:每个月开始的时候轮转,%d默认为 yyyy-MM-dd:按天轮转 -->
- <!-- %i为文件按照maxFileSize大小规定轮转后的序号 -->
- <FileNamePattern>${LOG_HOME:-c:/}logs/error/error-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
- <!--日志文件保留天数-->
- <MaxHistory>7</MaxHistory>
- <!--每个文件最多100MB,保留7天的历史记录,但最多20GB-->
- <TotalSizeCap>20GB</TotalSizeCap>
- <!--重启清理日志文件-->
- <CleanHistoryOnStart>true</CleanHistoryOnStart>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
- <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <!--每个文件最多100MB-->
- <MaxFileSize>100MB</MaxFileSize>
- </TimeBasedFileNamingAndTriggeringPolicy>
- </rollingPolicy>
- <layout class="ch.qos.logback.classic.PatternLayout">
- <!--日志文件输出格式-->
- <pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n</pattern>
- </layout>
- <!-- 只打印错误日志 -->
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>ERROR</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
- </filter>
- </appender>
-
- <!-- 所有日志输出-保留7天 -->
- <appender name="AllFile"
- class="ch.qos.logback.core.rolling.RollingFileAppender">
- <File>${LOG_HOME:-c:/}logs/all/all.log</File>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <FileNamePattern>${LOG_HOME:-c:/}logs/all/all-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
- <MaxHistory>7</MaxHistory>
- <TotalSizeCap>20GB</TotalSizeCap>
- <CleanHistoryOnStart>true</CleanHistoryOnStart>
- <TimeBasedFileNamingAndTriggeringPolicy
- class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <MaxFileSize>100MB</MaxFileSize>
- </TimeBasedFileNamingAndTriggeringPolicy>
- </rollingPolicy>
- <layout class="ch.qos.logback.classic.PatternLayout">
- <pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n</pattern>
- </layout>
- </appender>
如果设置为true,则将在追加程序启动时执行归档删除。默认情况下,此属性设置为false。
通常在过渡期间执行归档删除。但是,某些应用程序的生存时间可能不足以触发翻转。因此,对于这种短暂的应用程序,归档删除可能永远不会有执行的机会。通过将cleanHistoryOnStart设置为true,将在附加程序启动时执行归档删除。
fileNamePattern:后缀以".zip"或".gz"结尾,则开启日志文件压缩。
- <!-- 压缩日志输出 start -->
- <!-- 所有日志输出 -->
- <appender name="GzAllFile"
- class="ch.qos.logback.core.rolling.RollingFileAppender">
- <File>${LOG_HOME:-c:/}logs/gz/all/all.log</File>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!-- 后缀以".zip"或".gz"结尾,则开启日志文件压缩 -->
- <FileNamePattern>${LOG_HOME:-c:/}logs/gz/all/all-%d{yyyy-MM-dd}.%i.log.gz</FileNamePattern>
- <MaxHistory>3600</MaxHistory>
- <TimeBasedFileNamingAndTriggeringPolicy
- class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <MaxFileSize>100MB</MaxFileSize>
- </TimeBasedFileNamingAndTriggeringPolicy>
- </rollingPolicy>
- <layout class="ch.qos.logback.classic.PatternLayout">
- <pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n
- </pattern>
- </layout>
- </appender>
- <!-- error日志输出 -->
- <appender name="GzErrorFile"
- class="ch.qos.logback.core.rolling.RollingFileAppender">
- <File>${LOG_HOME:-c:/}logs/gz/error/error.log</File>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <FileNamePattern>${LOG_HOME:-c:/}logs/gz/error/error-%d{yyyy-MM-dd}.%i.log.gz
- </FileNamePattern>
- <MaxHistory>3600</MaxHistory>
- <TimeBasedFileNamingAndTriggeringPolicy
- class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <MaxFileSize>100MB</MaxFileSize>
- </TimeBasedFileNamingAndTriggeringPolicy>
- </rollingPolicy>
- <layout class="ch.qos.logback.classic.PatternLayout">
- <pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n
- </pattern>
- </layout>
- <filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 只打印错误日志 -->
- <level>ERROR</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
- </filter>
- </appender>
- <!-- 压缩日志输出 end -->
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。