Logback日志文件占用存储空间太多,设置保留文件个数,清理之前的文件。

主要由如下三个参数配合使用

maxHistory ,可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件,,例如设置为30的话,则30天之后,旧的日志就会被删除

totalSizeCap,可选节点,用来指定日志文件的上限大小,例如设置为3GB的话,那么到了这个值,就会删除旧的日志,此参数是appender级别的,即使你的文件保存在了不同的日期文件夹下,还是会删除,最多保留此设置的大小

cleanHistoryOnStart 在工程启动时清除日志文件

比如如下appender

fileNamePattern表示日志文件名规则。

MaxFileSize为100MB表示单个日志文件最大100MB。

totalSizeCap表示可保留日志文件的总大小为1GB,每个文件100M,那么也就是最多保留10个文件。

maxHistory表示最多保留10天的日志文件,与totalSizeCap的配置规则一起生效,日志文件满足任意一个条件都会被清除。

cleanHistoryOnStart表示在启动工程时根据配置的规则清理日志。

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${logBase}/${appName}-server.log</file>
<!--SizeAndTimeBasedRollingPolicy策略继承了TimeBasedRollingPolicy策略-->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--每天生成一个文件 %i表示序号 从0开始-->
<fileNamePattern>${logBase}/${appName}-server-%d{yyyy-MM-dd}.log.%i</fileNamePattern>
<!--每个文件的大小限制-->
<MaxFileSize>100MB</MaxFileSize>
<!--最多保留10天的文件,10天之前的将被清除-->
<MaxHistory>10</MaxHistory>
<!--该滚动策略日志的总大小,超过的日志会被清除-->
<totalSizeCap>1GB</totalSizeCap>
<!--启动时清理日志文件 此项置灰清理超过保留天数的 也会清理超过总大小的-->
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - [%X{TRACE_ID}] %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>

注意事项

logback的旧版本有bug,可能导致日志清理策略不生效,具体有如下几种:

1.maxHistory不生效,最低修复该bug的版本为1.1.7。

2.totalSizeCap不生效,最低修复该bug的版本为1.1.8。

3.totalSizeCap不能超过2G缺陷(int型,2g达到了int边界),最低修复该bug的版本为1.2.0。

<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>

Logback设置保留日志文件个数的更多相关文章

  1. TestNG+extentReports+log4j2 完善自动化测试框架——美观的报告和保留日志文件

    1:导入Maven依赖<dependency> <groupId>com.aventstack</groupId> <artifactId>extent ...

  2. docker日志输出文件大小设置以及文件个数限制

    问题描述: 今天有同事运行了一个docker容器,不多时就导致宿主机硬盘直接撑爆,消耗了120G,发生的很是突然. 问题排查: 后续查阅资料,发现是因为docker中的某个进程一直在持续输出,而这些输 ...

  3. 【spring boot logback】日志logback 生成日志文件在本项目下,而不在指定的日志文件目录下/指定日志文件到达最大值后不按照配置进行切割

    原本的日志文件配置如下: <?xml version="1.0" encoding="UTF-8"?> <configuration scan ...

  4. Oracle_管理控制文件和日志文件

    控制文件: 控制文件在数据库创建时被自动创建,并在数据库发生物理变化时更新.控制文件被不断更新,并且在任何时候都要保证控制文件是可用的.只有Oracle进程才能安全地更新控制文件的内容,所以,任何时候 ...

  5. 事务日志以及虚拟日志文件(VLFs)概述

    Part 1:事务日志 每个 SQL Server 数据库都具有事务日志,用于记录所有事务以及每个事务对数据库所做的修改.必须定期截断事务日志以避免它被填满.但是,一些因素可能延迟日志截断,因此监视日 ...

  6. Log4j的扩展-支持设置最大日志数量的DailyRollingFileAppender

    Log4j现在已经被大家熟知了,所有细节都可以在网上查到,Log4j支持Appender,其中DailyRollingFileAppender是被经常用到的Appender之一.在讨论今天的主题之前, ...

  7. Python实现日志文件写入或者打印--类似于Java的Log4j

    开发过Java的应该都知道Log4j的重要性,尤其是在开发测试中,能够让开发和测试人员方便找的bug,Python也有和Log4j相同功能的库那就是logging库,其功能非常强大,在开发测试中很方便 ...

  8. 切分 Tomcat 的 catalina.out 文件,解决日志文件过大的问题

    原文:http://unmi.cc/split-tomcat-catalina-out-file Linux 下使用 cronolog 工具来切分 catalina.out 这里重点介绍这种方法,具体 ...

  9. MySQL数据库日志文件(redo与undo)

    +++++++++++++++++++++++++++++++++++++++++++标题:MySQL数据库日志文件时间:2019年2月25日内容:MySQL数据库日志文件(redo日志和undo日志 ...

随机推荐

  1. Tomcat 内存马(二)Filter型

    一.Tomcat处理请求 在前一个章节讲到,tomcat在处理请求时候,首先会经过连接器Coyote把request对象转换成ServletRequest后,传递给Catalina进行处理. 在Cat ...

  2. swoole、swoft环境配置

    一.服务器环境 1.lnmp wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1.5.tar.gz && tar zxf ...

  3. bash: mysql: command not found(解决方法)

    执行mysql -uroot -p ,出现如图问题 解决方法如下: 执行以上命令,系统默认会查找/usr/bin下的命令,若这个命令不在该目录下,就会找不到,我们需要做的就是映射一个链接到/usr/b ...

  4. java中将double保留两位小数,将double保留两位小数并转换成String

    将Double类型的数据保留2位小数: Double a = 3.566; BigDecimal bd = new BigDecimal(a); Double d = bd.setScale(2, B ...

  5. VUE的MVVM框架解析

    这篇文章主要介绍了MVVM模式中ViewModel和View.Model有什么区别?本文分别解释了它们的功能和作用,然后总结了它之间的区别,需要的朋友可以参考下 Model:很简单,就是业务逻辑相关的 ...

  6. 开发中常见的@NotNull,@NotBlank,@NotEmpty注解的区别

    开发中常看见@NotNull,@NotBlank,@NotEmpty三个注解,但却没有深入了解过,下面介绍一下他们的应用场景和区别 @NotNull:主要用在基本数据类型上(Int,Integer,D ...

  7. 解决IE6,边框问题

    IE6是一个让人蛋疼而又无奈的浏览器,这次不经意间发现了一个BUG的解决发放,给大家分享一下 直接中部代码<input type="text" value="&qu ...

  8. 大爽Python入门教程 2-3 字符串,列表,字典

    大爽Python入门公开课教案 点击查看教程总目录 除了通用的序列方法, 列表和字符串还有些自己的专属方法. 后面介绍有些是英中文对照介绍(英文来自官方文档), 便于大家更深入的去理解其意思. 灵活的 ...

  9. Python 爬取 妹子图(技术是无罪的)

    ... #!/usr/bin/env python import urllib.request from bs4 import BeautifulSoup def crawl(url): header ...

  10. [at4631]Jewels

    如果要选某颜色,必然会选该颜色最大的两个,那么不妨将这两个宝石权值修改为两者的平均数,显然不影响两者的和,也即不影响答案 接下来,将所有宝石按权值从大到小排序,并在权值相同时按颜色编号从小到大(使颜色 ...