转载自 坑爹的日志无法按天切割问题

问题背景

线上某个新管理型系统出现了日志无法按天切割生成日志文件的问题,所有的日志都在一个日志文件里面,只有每次重启的时候才会重新生成文件。

这个管理系统使用的是 Spring Boot + Logback 框架,查看了 Logback 的日志文件,发现了策略组合使用问题。

以下是有问题的日志配置代码。

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>INFO</level></filter><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><FileNamePattern>${LOG_PATH}/info.log.%d{yyyy-MM-dd}.log</FileNamePattern><MaxHistory>30</MaxHistory></rollingPolicy><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern></encoder><triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"><MaxFileSize>10MB</MaxFileSize></triggeringPolicy></appender>

该配置使用了基于时间的滚动切割策略 TimeBasedRollingPolicy,每天0点自动生成一份新的日志文件。

但里面包含了一段 triggeringPolicy 触发策略,即最大单个文件超过 10MB 自动新成新日志文件, TimeBasedRollingPolicy 是基于时间的,不能和其他策略一起组合使用。

解决办法

1、去掉组合策略 triggeringPolicy

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>INFO</level></filter><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><FileNamePattern>${LOG_PATH}/info.log.%d{yyyy-MM-dd}.log</FileNamePattern><MaxHistory>30</MaxHistory></rollingPolicy><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern></encoder></appender>

2、使用时间和大小组合策略 SizeAndTimeBasedRollingPolicy

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>INFO</level></filter><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><FileNamePattern>${LOG_PATH}/info.log.%d{yyyy-MM-dd}.%i.log</FileNamePattern><MaxHistory>30</MaxHistory><maxFileSize>20MB</maxFileSize></rollingPolicy><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern></encoder>
</appender>

注意后面的 %i 是必须要加上去的,是单个日志文件超大小后的切割序号。

使用以上两种方案都可以解决 Logback 无法按天切割生成日志的问题,如果这两种解决不了你的问题,那你也要检查下你的滚动策略是否使用正确。

问题偶遇

巧了,Java技术栈知识星球上也有球友遇到了这类问题。

他使用了 Resin + Log4j 框架,还是要检查配置,配置错了一点就会导致无法正常生成滚动日志文件。。。

坑爹的日志无法按天切割问题相关推荐

  1. java编程线板切割问题_坑爹的日志无法按天切割问题!

    问题背景 线上某个新管理型系统出现了日志无法按天切割生成日志文件的问题,所有的日志都在一个日志文件里面,只有每次重启的时候才会重新生成文件. 这个管理系统使用的是 Spring Boot + Logb ...

  2. 07-Nginx 日志管理及自动切割

    Nginx 日志管理及自动切割 对于程序员.运维来说,日志非常得重要.通过日志可以查看到很多请求访问信息,及异常信息.Nginx 也提供了对日志的强大支持. 日志管理范围 首先,下面要讲的这些日志相关 ...

  3. Logback 配置文件这么写,TPS 提高 10 倍!

    作者:何甜甜在吗 链接:juejin.im/post/5d4d61326fb9a06aff5e5ff5 通过阅读本篇文章将了解到: 1.日志输出到文件并根据LEVEL级别将日志分类保存到不同文件 2. ...

  4. bat 调用class文件_Logback 配置文件这么写,TPS 提高 10 倍!

    作者:何甜甜在吗 链接:juejin.im/post/5d4d61326fb9a06aff5e5ff5 通过阅读本篇文章将了解到: 1.日志输出到文件并根据LEVEL级别将日志分类保存到不同文件 2. ...

  5. centos 日志切割_CentOS下的日志切割

    在Linux下,日志会不停的增长,为了防止日志文件过大,导致我们无法在日志中快速找到想要的信息,我们会定时对日志文件进行切割.在这里我将使用logrotate切割日志. (1).logrotate的配 ...

  6. apache 日志切割

    apache的日志是可以自动切割的. 方法一: 使用 cronolog 为每一天建立一个新的日志 CustomLog "|bin/cronolog logs/access_%Y%m%d.lo ...

  7. 日志切割清理工具 Log-Cutter

    Log-Cutter 是JessMA开源组织开发的一个简单实用的日志切割清理工具.对于服务器的日常维护来说,日志清理是非常重要的事情,如果残留日志过多则严重浪费磁盘空间同时影响服务的性能.如果用手工方 ...

  8. java日志切割工具_用 Java 实现的日志切割清理工具

    对于服务器的日常维护来说,日志清理是非常重要的事情,如果残留日志过多则严重浪费磁盘空间同时影响服务的性能.如果用手工方式进行清理,会花费太多时间,并且很多时候难以满足实际要求.例如:如何在每个星期六凌 ...

  9. 服务器log文件清理,服务器日志切割清理工具(LogCutter)

    对于服务器的日常维护来说,日志清理是非常重要的事情,如果残留日志过多则严重浪费磁盘空间同时影响服务的性能.如果用手工方式进行清理,会花费太多时间,并且很多时候难以满足实际要求.例如:如何在每个星期六凌 ...

最新文章

  1. Python多任务(2.线程的概念以及组成(创建线程的两种方式))
  2. 泛型算法(二十三)之排列算法
  3. Storm入门之第8章事务性拓扑
  4. MFC异形窗口-多边形窗口-根据图片自定义窗口形状-CRgn
  5. 基于JAVA个人饮食营养管理信息系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署
  6. Fortran 95简单教程(
  7. 南京工业大学计算机科学与技术学院保研外校,南京工业大学计算机科学与技术学院2018年招收推荐免试研究生章程...
  8. 大数据与数据挖掘的相对绝对关系
  9. 计算机教室标语6个字,教室标语大全
  10. 第三阶段应用层——1.6 数码相册—使用FreeType在LCD上显示多行文字
  11. Windows防火墙 命令行批量阻断攻击IP(非范围)
  12. Geany的所有主题文件
  13. 使用卷积神经网络进行实时面部表情检测
  14. 2020android主流机型,2020年最强安卓旗舰机皇的称号!这三款手机当之无愧
  15. 爬虫项目实战一:爬取500px图片
  16. Word 论文插入图/表目录
  17. Chrome小游戏《Boxel Rebound》
  18. 65寸电视长宽多少厘米
  19. 《现代量子力学》Sakurai 习题答案链接
  20. 记一次行云数据库(CirroData) 分区 创建/修改/添加数据等

热门文章

  1. [JavaWeb-MySQL]DQL_查询表中记录,语句
  2. [C++11]自动类型推导auto
  3. [剑指offer]面试题3:二维数组中的查找
  4. 2018 蓝桥杯省赛 A 组模拟赛(一)数列求值+推导
  5. 计算机组成原理期末复习往年卷子
  6. Ice_cream's world I HDU - 2120(并查集判环)
  7. Eclipse使用Maven插件创建Web项目时出错:Could not resolve archetype org.apache.maven.archetypes
  8. Codeforces Round #646 (Div. 2) E(贪心,bfs)
  9. Codeforces Round #691 (Div. 2)
  10. Strange Birthday Party CodeForces - 1471C