`
Kai_Ge
  • 浏览: 72466 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

解决logback 每天生成和大小生成 冲突 TimeBasedRollingPolicy SizeBasedTriggeringPolicy【转载】

阅读更多

    项目最近使用了logback,日志打印需要按照每天和大小生成日志,于是使用了TimeBasedRollingPolicy SizeBasedTriggeringPolicy

<appender name="FILE"  class="ch.qos.logback.core.rolling.RollingFileAppender">
	<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
		<FileNamePattern>${LOG_HOME}/consumer.%d{yyyy-MM-dd_HH}.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和SizeBasedTriggeringPolicy冲突,在根据网上的资料去看了logback的官网地址:https://logback.qos.ch/manual/appenders.html#SizeAndTimeBasedFNATP,在游览了之后发现了最重要的部分,如下:

Size and time based rolling policy

Sometimes you may wish to archive files essentially by date but at the same time limit the size of each log file, in particular if post-processing tools impose size limits on the log files. In order to address this requirement, logback ships with SizeAndTimeBasedRollingPolicy.

Note that TimeBasedRollingPolicy already allows limiting the combined size of archived log files. If you only wish to limit the combined size of log archives, then TimeBasedRollingPolicy described above and setting the totalSizeCap property should be amply sufficent.

Here is a sample configuration file demonstrating time and size based log file archiving.

Example: Sample configuration for SizeAndTimeBasedFNATP (logback-examples/src/main/resources/chapters/appenders/conf/logback-sizeAndTime.xml)

View as .groovy
<configuration>
  <appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>mylog.txt</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
      <!-- rollover daily -->
      <fileNamePattern>mylog-%d{yyyy-MM-dd}.%i.txt</fileNamePattern>
      <!-- each file should be at most 100MB, keep 60 days worth of history, but at most 20GB -->
      <maxFileSize>100MB</maxFileSize>    
      <maxHistory>60</maxHistory>
      <totalSizeCap>20GB</totalSizeCap>
    </rollingPolicy>
    <encoder>
      <pattern>%msg%n</pattern>
    </encoder>
  </appender>

  <root level="DEBUG">
    <appender-ref ref="ROLLING" />
  </root>
</configuration>

    然后就发现logback还有一个SizeAndTimeBasedRollingPolicy,所以根据官网修改我的配置文件为:

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
	<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
		<!-- rollover daily -->
		<fileNamePattern>${LOG_HOME}/consumer.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
		<!-- each file should be at most 100MB, keep 60 days worth of history, but at most 20GB -->
		<maxFileSize>50MB</maxFileSize>
		<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>

    然后就ok了,日志文件中的%d、%i是不可缺少的。最新jar包,附件下载!

分享到:
评论

相关推荐

    logback.xml按日期再按大小输出日志 配置

    该配置使日志先按日期进行归类,然后按大小输出异步日志

    Tomcat日志catalina.out过大解决方案--使用logback按日轮转.rar

    这个配置中,`RollingFileAppender`定义了日志写入到`logs/catalina.log`文件,并使用`TimeBasedRollingPolicy`按日期进行滚动,每天生成一个新的日志文件,最多保留30天的历史日志。`encoder`部分则设置了日志的...

    Logback框架需要的3个jar包和logback.xml文件

    Logback 提供了高效、灵活的日志记录解决方案,支持多种日志级别,如DEBUG、INFO、WARN、ERROR等,帮助开发者调试程序、定位问题,并且能够方便地调整日志输出级别和格式。 1. **Logback 核心组件**: - **logback...

    logback jar包和logback.xml配置文件打包下载 小白新手学Java

    SLF4J(Simple Logging Facade for Java)和Logback是两个常用的日志处理框架,它们提供了高效且灵活的日志解决方案。SLF4J作为一个抽象层,允许开发者选择底层的日志实现,而Logback则是一个优秀的SLF4J实现。在...

    spring boot logback 实现

    本教程将深入讲解如何在Spring Boot项目中配置和使用Logback,实现日志的info和error级别分类存放,以及每日生成新的日志文件。 首先,Logback是由Ceki Gülcü创建的,它是Log4j的继任者,提供了更高的性能和更...

    logback所需jar包

    &lt;rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"&gt; &lt;fileNamePattern&gt;logs/app.%d{yyyy-MM-dd}.log &lt;maxHistory&gt;30 &lt;!-- encoder pattern here --&gt; ``` 以上就是Logback的...

    logback.的jar包

    Logback 支持滚动和归档日志文件,可以按照日期或大小自动创建新的日志文件,避免单个日志文件过大。同时,它还提供了一些安全特性,如限制日志文件大小,防止恶意用户通过生成大量日志文件消耗磁盘空间。 **总结**...

    Logback类库含logback.xml配置文件

    Logback 是为了提供更高效、更灵活的日志记录解决方案而设计的,它不仅继承了 Log4j 的优点,还解决了一些性能和可扩展性问题。在Java应用程序中,日志系统扮演着至关重要的角色,它帮助开发者调试代码,记录错误,...

    日志框架+Logback的jar包和配置文件

    &lt;rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"&gt; &lt;fileNamePattern&gt;logs/app.%d{yyyy-MM-dd}.log &lt;maxHistory&gt;30 &lt;pattern&gt;%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} ...

    logback做日志(代码演示和文档)

    Logback 是一个完整的日志解决方案,它包括三个主要组件:logback-classic、logback-core 和 logback-access。其中,logback-classic 是对SLF4J(Simple Logging Facade for Java)的实现,而logback-core 提供了...

    LogBack的基本知识和优势

    LogBack 是一个强大的日志框架,它在日志管理领域接替了早期的log4j,提供了更高效、更灵活的解决方案。LogBack 的设计哲学是"同样的基础架构,但做得更好",它不是一场革命,而是log4j的自然进化,强调更快的速度、...

    logback的使用和logback.xml详解

    标题"Logback的使用和logback.xml详解"暗示了我们要讨论的是一个日志管理框架——Logback,以及它的配置文件`logback.xml`。Logback是Java社区广泛使用的日志处理系统,由Ceki Gülcü创建,作为Log4j的后继者。它...

    logback完整学习例子

    总结,这个"Logback 完整学习例子"涵盖了 Maven 集成、环境配置切换、日志生成、指定包日志和自定义过滤器等多个方面,是理解并实践 Logback 功能的好材料。通过学习和实践这些内容,开发者能够更好地掌握日志管理,...

    logback日志配置

    &lt;triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"&gt; &lt;MaxFileSize&gt;100MB &lt;append&gt;false &lt;prudent&gt;false &lt;!-- 针对 Hibernate 的特殊配置 --&gt; &lt;!-- 示例代码省略 --&gt; ...

    LogBack日志的使用

    总的来说,LogBack提供了一套强大的日志解决方案,包括灵活的配置、多样的输出目标、丰富的日志级别和格式化选项,以及智能的日志归档和分发功能。通过深入理解和熟练运用LogBack,开发者可以更好地监控和分析应用...

    spring boot logback 开发、测试、生产环境配置.xml

    spring boot环境下的 logback 三种环境即:开发环境、测试环境、生产环境的应用日志的详细配置.

    logback

    3. **性能优化**:探讨如何最大化日志性能,例如使用异步日志记录、控制日志存储和清理策略,以及设置合适的缓冲区大小。 4. **日志输出目的地**:包括控制台、文件、数据库、远程服务器等多种日志输出选项,以及...

    Logback中文文档-实用

    Logback中文文档是一份关于Logback使用和配置的全面指南,它提供了深入的理论知识和实用的API应用,覆盖了Logback的几乎所有重要方面。 在这份文档中,首先介绍了Logback的基础概念。文档解释了什么是Logback,它的...

    logback下载 日志文件jar包

    Logback 是一款广泛使用的日志记录框架,由 Ceki Gülcü 创建,作为其先前作品 Log4j 的改进版。这个压缩包包含了实现 Logback 功能所...Logback 的高效性能和强大的功能使其成为 Java 开发中的首选日志解决方案之一。

    logback-slf4j日志配置文件-下载即可使用

    * `&lt;groupId&gt;ch.qos.logback&lt;/groupId&gt;`:logback-core、logback-classic和logback-access依赖项,提供了日志记录的实现。 Logback.xml配置文件 logback.xml是logback-slf4j的配置文件,用于定义日志记录的规则。...

Global site tag (gtag.js) - Google Analytics