首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何让Log4j2 RollingFileAppender创建新的日志文件并滚动现有文件

Log4j2是一个Java日志框架,RollingFileAppender是其中一个用于日志文件滚动的Appender。下面是关于如何让Log4j2的RollingFileAppender创建新的日志文件并滚动现有文件的答案:

Log4j2的RollingFileAppender允许我们在日志文件大小达到指定阈值时创建新的日志文件并滚动现有文件。这样可以将日志文件分割成多个较小的文件,方便管理和查看。

要实现这个功能,我们需要在log4j2.xml配置文件中进行相应的设置。以下是一种常见的配置方式:

代码语言:txt
复制
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
    <Appenders>
        <RollingFile name="RollingFile" fileName="logs/app.log"
                     filePattern="logs/app-%d{MM-dd-yyyy_HH-mm-ss}-%i.log.gz">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
            <Policies>
                <SizeBasedTriggeringPolicy size="10MB"/>
            </Policies>
            <DefaultRolloverStrategy max="10"/>
        </RollingFile>
    </Appenders>
    <Loggers>
        <Root level="info">
            <AppenderRef ref="RollingFile"/>
        </Root>
    </Loggers>
</Configuration>

在上面的配置中,我们通过设置fileName属性指定了日志文件的初始名称(例如logs/app.log),通过设置filePattern属性指定了滚动后的日志文件命名模式。%d{MM-dd-yyyy_HH-mm-ss}表示日期和时间的格式,%i表示滚动次数。

另外,我们通过在Policies节点下添加SizeBasedTriggeringPolicy策略,并设置size属性为10MB,表示当日志文件大小达到10MB时触发滚动。

DefaultRolloverStrategy节点中,我们可以设置max属性来限制滚动后的日志文件数量。在上述配置中,我们设置最多保留10个滚动后的日志文件。

以上是一个基本的配置示例,你可以根据自己的需求进行相应的调整和扩展。

关于Log4j2 RollingFileAppender的更多信息,可以参考腾讯云的文档:Log4j2 RollingFileAppender

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

你知道 log4j2 各项配置全部含义吗?带你了解 log4j2 全部组件

引言 此前文章中通过 log4j2 AsyncAppender 源码介绍了异步日志用法: log4j2 异步日志 -- AsyncAppender 有读者私信我表示想我写一篇关于 log4j2...4. log4j2 组件 如图所示,log4j2 由四部分构成: Logger -- 负责捕获日志记录,传递给 Appender,他是日志行为发起者。...Appender -- RollingFileAppender 对于一个线上持续工作服务来说,持续向单个文件输出日志显然是不现实。...RollingFileAppender 实现了滚动文件存储,他有三个策略: OnStartupTriggeringPolicy -- 每次 JVM 启动,都滚动日志文件开始记录。...幸运是,log4j2 支持我们创建自己 Appender、Layout、Filter 以便实现我们极具个性化自定义功能。那么,如何创建自己 Appender、Layout、Filter 呢?

2.2K20
  • Spring Boot(十)Logback和Log4j2集成与日志发展史

    1.6 Log4j2 Log4j2有着和Logback相同功能,但又有自己单用功能,比如:插件式结构、配置文件优化、异步日志等。...2.3 自定义日志配置 日志服务在ApplicationContext创建前就初始化了,所以通过设置属性和传统配置XML文件,可以对日志进行管理和控制。...只需要在src/main/resources下,创建好约定名称XML文件,即可完成对日志系统设置,不同日志系统有不同约定名称,如下列表: 日志 名称 logback logback-spring.xml...-- 设置滚动策略,当天日志大小超过 ${MAX_FILE_SIZE} 文件大小时候,内容写入文件, 默认10MB --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy

    1.5K20

    细说 Java 主流日志工具库

    Log4j 应该说是 Java 领域资格最老,应用最广日志工具。从诞生之日到现在一直广受业界欢迎。 Log4j 是高度可配置,并可通过在运行时外部文件配置。...Log4j2 对于独立应用程序是无垃圾,对于稳定状态日志记录期间 Web 应用程序来说是低垃圾。这减少了垃圾收集器压力,并且可以提供更好响应时间性能。...Log4j2 使用插件系统,通过添加 Appender、Filter、Layout、Lookup 和 Pattern Converter,可以非常轻松地扩展框架,而无需对 Log4j 进行任何更改。...Syslog Appender 支持 TCP 和 UDP 并且支持 BSD 系统日志Log4j2 利用 Java5 并发特性,尽量小粒度使用锁,减少锁开销。 日志门面 何谓日志门面?...接下来,就是如何在项目中实施了。

    1.1K10

    SpringBoot 日志

    java.util.logging) Log4j2 Logback 划线是我们开发中不常用,所以我们首选日志框架是SLF4j,log4j性能问题,所以其作者开发了 logback;log4j2...SLF4j 1、如何在系统中使用SLF4j 以后我们开发时候,日志记录方法调用,不应该直接掉用日志实现类,而是调用日志抽象层里方法。...-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 --> <appender name="appLogAppender" class="ch.qos.logback.core.rolling.<em>RollingFileAppender</em>...-- 当发生<em>滚动</em>时,决定 <em>RollingFileAppender</em> <em>的</em>行为,涉及<em>文件</em>移动和重命名 TimeBasedRollingPolicy: 最常用<em>的</em><em>滚动</em>策略,它根据时间来制定<em>滚动</em>策略...-- <em>滚动</em>时产生<em>的</em><em>文件</em><em>的</em>存放位置及<em>文件</em>名称 %d{yyyy-MM-dd}:按天进行<em>日志</em><em>滚动</em> %i:当<em>文件</em>大小超过maxFileSize时,按照i进行<em>文件</em><em>滚动</em>

    24910

    Spring 全家桶之 Spring Boot 2.6.4(三)- Logging

    :参考了logback,做了一系列优化,推出了log4j2,2015年9月,Apache软件基金业宣布,Log4j不在维护,建议所有相关项目升级到Log4j2。...-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 --> <appender name="appLogAppender" class="ch.qos.logback.core.rolling.<em>RollingFileAppender</em>...-- 当发生<em>滚动</em>时,决定 <em>RollingFileAppender</em> <em>的</em>行为,涉及<em>文件</em>移动和重命名 TimeBasedRollingPolicy: 最常用<em>的</em><em>滚动</em>策略,它根据时间来制定<em>滚动</em>策略...-- <em>滚动</em>时产生<em>的</em><em>文件</em><em>的</em>存放位置及<em>文件</em>名称 %d{yyyy-MM-dd}:按天进行<em>日志</em><em>滚动</em> %i:当<em>文件</em>大小超过maxFileSize时,按照i进行<em>文件</em><em>滚动</em>...注意,删除旧<em>文件</em>是, 那些为了归档而<em>创建</em><em>的</em>目录也会被删除。

    47110

    SpringBoot日志框架

    -- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 --> <appender name="fileLogAppender" class="ch.qos.logback.core.rolling.<em>RollingFileAppender</em>...-- 当发生<em>滚动</em>时,决定 <em>RollingFileAppender</em> <em>的</em>行为,涉及<em>文件</em>移动和重命名 TimeBasedRollingPolicy: 最常用<em>的</em><em>滚动</em>策略,它根据时间来制定<em>滚动</em>策略...-- <em>滚动</em>时产生<em>的</em><em>文件</em><em>的</em>存放位置及<em>文件</em>名称 %d{yyyy-MM-dd}:按天进行<em>日志</em><em>滚动</em> %i:当<em>文件</em>大小超过maxFileSize时,按照i进行<em>文件</em><em>滚动</em>...也在向此<em>文件</em>做写入操作,效率低,默认是 false 3.<em>RollingFileAppender</em> <em>滚动</em>记录<em>文件</em>,先将<em>日志</em>记录到指定<em>文件</em>,当符合某个条件时,将<em>日志</em>记录到其他<em>文件</em>。...,如果超过指定大小会告知<em>RollingFileAppender</em> 触发当前活动<em>文件</em><em>滚动</em>。

    72210

    Log4j2 - 动态生成Appender

    实现思路 将所有User日志都打印到日志文件logs/CNTCore.log中,这个可以直接使用配置文件log4j2.xml来解决,一个简单配置如下: 1 2 3 4 5 6 7 8...至于另外再打印到对应domain日志文件logs/{domainId}/CNTCore.log,这个可以通过代码来动态生成各个domainappender,交由com.lewis这个logger来进行拼接日志...appender,需要注意是,如果启用了Log4j2动态加载配置文件功能,那么当配置文件被改动后被重新加载时,会导致原本动态生成domain appender无效。...因为重新加载配置文件会生成LoggerContext对象,这时候可能会丢失一部分日志信息到对应domain日志文件里。...参考链接 运行时添加log4j2appender log4j2如何动态创建logger和appender log4j2 不使用配置文件,动态生成logger对象 log4j2MDC应用配置 警告

    1.4K20

    Java日志中最全面的框架介绍

    很多时候我们做项目都是从简单到复杂,也就是我们很可能一开始使用是 JDKLog,之后业务复杂了需要使用 Log4J,这时候我们如何将原来写好日志日志框架输出呢?...滚动纪录文件,先将日志记录到指定文件,当符合某种条件时,将日志记录到其他文件,有如下节点: :被写入文件名,可以是相对目录,也可以解决目录,如果目录不存在则自动创建。...:当发生滚动时,决定 RollingFileAppender 行为,涉及文件移动和重命名。...">是 6,则只保存最近6个月文件,删除之前文件,注意:删除旧文件是哪些为了归档而创建目录也会被删除。...-- 按文件大小区分滚动日志 --> <appender name="INFO-OUT" class="ch.qos.logback.core.rolling.<em>RollingFileAppender</em>

    1.4K80

    Java日志框架那些事儿

    很多时候我们做项目都是从简单到复杂,也就是我们很可能一开始使用是 JDKLog,之后业务复杂了需要使用 Log4J,这时候我们如何将原来写好日志日志框架输出呢?...文件输出 ch.qos.logback.core.RollingFileAppender 文件滚动输出 <?...滚动纪录文件,先将日志记录到指定文件,当符合某种条件时,将日志记录到其他文件,有如下节点: :被写入文件名,可以是相对目录,也可以解决目录,如果目录不存在则自动创建。...:当发生滚动时,决定 RollingFileAppender 行为,涉及文件移动和重命名。...:可选节点,控制保留归档文件最大数量,超出数量就删除旧文件,假设设置每个月滚动,且 是 6,则只保存最近6个月文件,删除之前文件,注意:删除旧文件是哪些为了归档而创建目录也会被删除

    1.9K90

    如何在Spring项目使用SLF4J框架?

    -- 替换为最新版本 --> 选择日志实现 SLF4J本身并不提供日志具体实现,因此你还需要选择一个具体日志实现,比如Logback或者Log4j2。...-- 替换为最新版本 --> 配置日志 在Spring项目中,你可以在src/main/resources目录下创建一个名为logback.xml文件来配置Logback日志框架...-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 RollingFileAppender --> 是6, 则只保存最近6个月文件,删除之前文件。...-- 可选节点,控制保留归档文件最大数量,超出数量就删除旧文件,假设设置每个月滚动,且是6, 则只保存最近6个月文件,删除之前文件

    57310

    Spring学习笔记(十八)——spring日志框架配置和使用

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vLClAInc-1589964649457)(images/legacy.png)] 如何系统中所有的日志都统一到slf4j...-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 --> <appender name="appLogAppender" class="ch.qos.logback.core.rolling.<em>RollingFileAppender</em>...-- 当发生<em>滚动</em>时,决定 <em>RollingFileAppender</em> <em>的</em>行为,涉及<em>文件</em>移动和重命名 TimeBasedRollingPolicy: 最常用<em>的</em><em>滚动</em>策略,它根据时间来制定<em>滚动</em>策略...-- <em>滚动</em>时产生<em>的</em><em>文件</em><em>的</em>存放位置及<em>文件</em>名称 %d{yyyy-MM-dd}:按天进行<em>日志</em><em>滚动</em> %i:当<em>文件</em>大小超过maxFileSize时,按照i进行<em>文件</em><em>滚动</em>...-- 当<em>日志</em><em>文件</em>超过maxFileSize指定<em>的</em>大小是,根据上面提到<em>的</em>%i进行<em>日志</em><em>文件</em><em>滚动</em> 注意此处配置SizeBasedTriggeringPolicy是无法实现按<em>文件</em>大小进行<em>滚动</em><em>的</em>

    1.6K01

    IntelliJ IDEA 如何创建一个普通 Java 项目,及创建 Java 文件运行

    看来很多小伙伴也开始从 Eclipse 转到 IDEA,这里为了大家更好掌握 IDEA 使用,我建议大家可以看看下面这个 IDEA 教程。...一、创建 Java 项目: 1、打开 IDEA 软件,点击界面上 Create New Project 2、出现以下界面,选中 Java,然后选择 JDK,最后点击 Next,进行下一步(...我是 jdk1.8) 3、这里是选择生成项目时是否创建 Java 文件,勾选上 Java Hello World 后会生成一个默认 Hello world 文件,点击 Next 进行下一步, 4...、给项目命名,默认是 untiled,自己填个名字吧,最后点击 finish 5、项目创建完成 二、创建 Java 文件: 1、点击 src——>new——>package,创建一个文件包...,给包命名,与 Eclipse 包类似; 给包命名 2、在包下面创建 Java 类文件,点击包名——>New——>Java Class; 给类文件命名 4、运行 Java 文件,点击 Run

    2.2K10

    SpringBoot | SpringBoot 是如何实现日志

    如何系统中所有的日志都统一到 slf4j ? 我继续浏览了下官网,看见这么一张图: ?...-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 --> <appender name="appLogAppender" class="ch.qos.logback.core.rolling.<em>RollingFileAppender</em>...-- 当发生<em>滚动</em>时,决定 <em>RollingFileAppender</em> <em>的</em>行为,涉及<em>文件</em>移动和重命名 TimeBasedRollingPolicy: 最常用<em>的</em><em>滚动</em>策略,它根据时间来制定<em>滚动</em>策略...-- <em>滚动</em>时产生<em>的</em><em>文件</em><em>的</em>存放位置及<em>文件</em>名称 %d{yyyy-MM-dd}:按天进行<em>日志</em><em>滚动</em> %i:当<em>文件</em>大小超过maxFileSize时,按照i进行<em>文件</em><em>滚动</em>...-- 当<em>日志</em><em>文件</em>超过maxFileSize指定<em>的</em>大小是,根据上面提到<em>的</em>%i进行<em>日志</em><em>文件</em><em>滚动</em> 注意此处配置SizeBasedTriggeringPolicy是无法实现按<em>文件</em>大小进行<em>滚动</em><em>的</em>

    64750

    Spring Boot中集成Slf4j 与Logback

    每个系统中都会有个日志,不管你是自己实现单纯写文件,还是利用多功能日志框架,大系统会有相应日志系统。什么是日志门面?什么是日志框架?SpringBoot 中如何使用日志。...日志框架:Java中有 jul,Log4j,Log4j2,Logback 几种日志框架一样,每一种日志框架都有自己单独API,要使用对应框架就要使用其对应API,这就大大增加应用程序代码对于日志框架耦合性...--RollingFileAppender滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件--> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy...--被写入<em>的</em><em>文件</em>名,可以是相对目录,也可以是绝对目录,如果上级目录不存在会自动<em>创建</em>,没有默认值。

    2.9K10
    领券