Maven坐标

<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId><version>1.1.11</version>
</dependency>
<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.1.11</version>
</dependency>
<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-access</artifactId><version>1.1.11</version>
</dependency>

官网说明: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.

有时候你本来是希望按照日期来对日志进行归档,但是同时你又希望限制每个日志文件的大小,为了满足这一需求,logback提供了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.

注意,TimeBasedRollingPolicy已经允许限制合并归档日志文件的大小。如果你只希望限制合并归档日志的大小,TimeBasedRollingPolicy中设置totalSizeCap即可:

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>

Note the "%i" conversion token in addition to "%d". Both the %i and %d tokens are mandatory. Each time the current log file reaches maxFileSize before the current time period ends, it will be archived with an increasing index, starting at 0.

注意:“%i"”转换标记除了“% d”。%i"和% d令牌都是强制性的。每次当前日志文件之前到达maxFileSize当前时间段结束时,它将存档增加索引从0开始。

Size and time based archiving supports deletion of old archive files. You need to specify the number of periods to preserve with the maxHistory property. When your application is stopped and restarted, logging will continue at the correct location, i.e. at the largest index number for the current period.

基于大小和时间的归档支持删除旧存档文件。您需要指定使用maxHistory属性保留的时期数量。当应用程序停止并重新启动时,日志记录将在正确的位置继续,即当前期间的最大索引号。

In versions prior to 1.1.7, this document mentioned a component called SizeAndTimeBasedFNATP. However, given that SizeAndTimeBasedFNATP offers a simpler configuration structure, we no longer document SizeAndTimeBasedFNATP. Nevertheless, earlier configuration files using SizeAndTimeBasedFNATP will continue to work just fine. In fact,SizeAndTimeBasedRollingPolicy is implemented with a SizeAndTimeBasedFNATP subcomponent.

在1.1.7之前的版本中,本文档提到了一个名为SizeAndTimeBasedFNATP的组件。但是,考虑到SizeAndTimeBasedFNATP提供了更简单的配置结构,我们不再记录SizeAndTimeBasedFNATP。不过,使用SizeAndTimeBasedFNATP的早期配置文件将继续正常工作。实际上,SizeAndTimeBasedRollingPolicy是用SizeAndTimeBasedFNATP子组件实现的。

Logback.xml:同时按照日期和大小分割日志

有两种形式:
最新的日志,是日期最大数字最大的
最新的日志,是没有日期没有数字的
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false"><!--定义日志文件的存储地址 --><property name="LOG_HOME" value="/usr/local/java/tomcat-log/项目名" /><!-- 控制台输出 --><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern></encoder></appender><!-- 按照每天和固定大小(5MB)生成日志文件【最新的日志,是日期最大数字最大的】 --><!-- <appender name="FILE"  class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">&lt;!&ndash;日志文件输出的文件名&ndash;&gt;<FileNamePattern>${LOG_HOME}/项目名_%d{yyyy-MM-dd}.%i.log</FileNamePattern>&lt;!&ndash;日志文件保留天数&ndash;&gt;<MaxHistory>30</MaxHistory>&lt;!&ndash;日志文件最大的大小&ndash;&gt;<MaxFileSize>5MB</MaxFileSize></rollingPolicy><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">&lt;!&ndash;格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符&ndash;&gt;<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern></encoder>&lt;!&ndash;日志文件最大的大小&ndash;&gt;&lt;!&ndash;<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">&lt;!&ndash;<MaxFileSize>5MB</MaxFileSize>&ndash;&gt;<MaxFileSize>5KB</MaxFileSize></triggeringPolicy>&ndash;&gt;</appender>--><!-- 按照每天和固定大小(5MB)生成日志文件【最新的日志,是没有日期没有数字的】 --><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_HOME}/项目名.log</file><append>true</append><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><fileNamePattern>${LOG_HOME}/项目名_%d{yyyy-MM-dd}.%i.log</fileNamePattern><!--日志文件保留天数--><MaxHistory>30</MaxHistory><!--日志文件最大的大小--><MaxFileSize>5MB</MaxFileSize></rollingPolicy><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern></encoder><!-- <filter class="ch.qos.logback.classic.filter.LevelFilter"><level>TRACE</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter>--></appender><!-- show parameters for hibernate sql 专为 Hibernate 定制 --><logger name="org.hibernate.type.descriptor.sql.BasicBinder"  level="WARN" /><logger name="org.hibernate.type.descriptor.sql.BasicExtractor"  level="WARN" /><logger name="org.hibernate.SQL" level="WARN" /><logger name="org.hibernate.engine.QueryParameters" level="WARN" /><logger name="org.hibernate.engine.query.HQLQueryPlan" level="WARN" /><!--myibatis log configure--><logger name="com.apache.ibatis" level="WARN"/><logger name="java.sql.Connection" level="WARN"/><logger name="java.sql.Statement" level="WARN"/><logger name="java.sql.PreparedStatement" level="WARN"/><!--newcapec--><logger name="com.newcapec" level="INFO"/><!-- 日志输出级别 --><root level="INFO"><appender-ref ref="STDOUT" /><appender-ref ref="FILE" /></root><!--日志异步到数据库 --><!--<appender name="DB" class="ch.qos.logback.classic.db.DBAppender">--><!--&lt;!&ndash;日志异步到数据库 &ndash;&gt;--><!--<connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">--><!--&lt;!&ndash;连接池 &ndash;&gt;--><!--<dataSource class="com.mchange.v2.c3p0.ComboPooledDataSource">--><!--<driverClass>com.mysql.jdbc.Driver</driverClass>--><!--<url>jdbc:mysql://127.0.0.1:3306/databaseName</url>--><!--<user>root</user>--><!--<password>root</password>--><!--</dataSource>--><!--</connectionSource>--><!--</appender>-->
</configuration>

最新的日志,是日期最大数字最大的

最新的日志,是没有日期没有数字的

Java程序使用

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;private final Logger log = LoggerFactory.getLogger(this.getClass());

Logback:同时按照日期和大小分割日志(最新日志可以不带日期或数字)相关推荐

  1. python日期比较大小_js中怎么比较两个日期

    JavaScript学习了这么久,有没有发现JavaScript很好用呢?JavaScript可以比较两个日期,并且不会将数据存入服务器,允许对比较的日期进行修改和删除,可以进行不同日期的比较.本文介 ...

  2. 基于log4net的支持动态文件名、按日期和大小自动分割文件的日志组件

    最近处理一个日志功能,用log4net的配置不能完全满足要求,所以在其基础上简单封装了一下,支持以下功能: 1 零配置 内置默认配置,引用dll后不需要添加或修改任何配置文件也可以使用 2 动态指定文 ...

  3. log4j支持同时按日期和文件大小分割日志

    1.需要的jar包 <!-- LOG4J --> <dependency><groupId>org.slf4j</groupId><artifac ...

  4. php如何将读取到的mysql内容按发布的日期分割显示_php如何读取文件夹目录里的文件并按照日期,大小,名称排序...

    最近用到的php读取文件夹目录里的文件,并按照日期,大小,名称排序,所以写了一个方法,备用. function dir_size($dir,$url){ $dh = @opendir($dir);   ...

  5. java常用日志框架日志门面及实现 SLF4J 、Jboss-logging 、JCL、Log4j、Logback、Log4j2、JUL,springboot集成 log4j、log4j2

    java常用日志框架日志门面SLF4J .Jboss-logging .JCL.Log4j及实现 Logback.Log4j2.JUL,springboot集成 log4j.log4j2 .logba ...

  6. 【nginx运维基础(4)】Nginx的日志管理(日志格式与定时分割日志)

    Nginx日志主要分为两种:访问日志和错误日志.日志开关在Nginx配置文件(一般在server段来配置)中设置,两种日志都可以选择性关闭,默认都是打开的. 访问日志access_log #日志格式设 ...

  7. 使用cronolog 分割Tomcat日志 Apache日志

    1. 安装cronolog 官网下载:http://cronolog.org/usage.html ./configure make;make install 默认安装位置: # which cron ...

  8. java8 LocalDate 日期比较大小

    java8 LocalDate 日期比较大小 /*** 比较第一个日期是否大于第二个日期* @param firstDate 第一个日期* @param secondDate 第二个日期* @retu ...

  9. mysql中对比月_详解Mysql中日期比较大小的方法

    假如有个表product有个字段add_time,它的数据类型为datetime,有人可能会这样写sql: 代码如下 select * from product where add_time = '2 ...

最新文章

  1. 何恺明团队推出Mask^X R-CNN,将实例分割扩展到3000类
  2. 操作系统-南京大学(蒋岩炎)课程--操作系统上的程序
  3. Android 的Parcelable接口
  4. Microsoft.Bcl.Build 1.0.10 稳定版发布
  5. 每日程序C语言26-直接选择排序
  6. 代码神注释鉴赏,喜欢拿去用
  7. MVC与三层架构讲解
  8. linux .o,.a,.so文件区别是什么
  9. 如果局域网当中两台电脑互相ping不通
  10. android线控耳机开发,Typec转3.5mm耳机方案带线控SSS1530设计开发(原理图+PCB电路)...
  11. 联想ThinkBook 14+和 2022宏碁非凡S3 哪个好
  12. 【科研小工具】输入任意坐标即可显示相应脑区详细解剖信息
  13. 如何设置ajax监控,监控使用AJAX的XMLHttpRequest
  14. Kmeans(C/C++实现,以足球队聚类为例)
  15. Brave浏览器推出首个基于隐私的广告平台
  16. 使用vscode编译器:检测到 #include 错误。请更新 includePath。已为此翻译单元,无法打开源文件<iostream>
  17. 日本IT巨头富士通完成区块链电力共享项目测试
  18. 教你如何将网页上的视频下载到手机
  19. x265-1.8版本-encoder/frameencoder.h注释
  20. 多玩英雄联盟插件盒子v3.8.0

热门文章

  1. 整数分解成不同加数的最大乘积
  2. 本周白银价格走势仍关注美经济数据
  3. chap mysql借点_mysql必知必会-读书笔记(chap4-8)
  4. Facebook要做的事,这家公司4年前就在做了
  5. 操作系统(COPY自wk)
  6. 大话设计模式读书笔记之单例模式
  7. 历时5年打造开源芯片生态的一块拼图——SERVE平台
  8. 【安全资讯】2021年RSA大会上值得关注的十大网络安全问题
  9. Shiro(1.3.2)——入门
  10. linux博通2070蓝牙驱动,Broadcom博通BCM 2070/20702系列蓝牙设备驱动怎么样