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

Log4j2在应用程序重新启动后不创建新的日志文件

Log4j2是一个Java日志框架,用于在应用程序中记录日志信息。它提供了灵活的配置选项和高性能的日志记录功能。

在应用程序重新启动后,Log4j2默认情况下不会创建新的日志文件。这是因为Log4j2使用了异步日志记录机制,它将日志消息缓冲在内存中,并定期将缓冲区中的日志写入到磁盘上的日志文件中。当应用程序重新启动时,Log4j2会继续使用之前的日志文件,并将新的日志消息追加到该文件中。

这种行为有以下几个优势:

  1. 避免了在应用程序重新启动时创建大量的新日志文件,减少了磁盘空间的占用。
  2. 方便查看应用程序的完整日志记录,不会因为重新启动而分散在多个日志文件中。
  3. 保留了之前日志文件的历史记录,方便进行故障排查和日志分析。

然而,如果需要在应用程序重新启动后创建新的日志文件,可以通过配置Log4j2的RollingFileAppender来实现。RollingFileAppender可以按照一定的条件(例如文件大小、时间间隔)来触发日志文件的滚动,从而创建新的日志文件。

以下是一个使用RollingFileAppender创建新日志文件的示例配置:

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

在上述配置中,fileName指定了初始的日志文件名,filePattern定义了滚动日志文件的命名规则。Policies中的SizeBasedTriggeringPolicy表示按照文件大小触发滚动,当日志文件大小达到10MB时,将创建新的日志文件。DefaultRolloverStrategy定义了滚动日志文件的策略,max属性指定了最多保留的日志文件数量。

推荐的腾讯云相关产品:腾讯云日志服务(CLS)。腾讯云日志服务(Cloud Log Service,CLS)是一种全托管的日志管理服务,提供了日志采集、存储、检索和分析的能力。您可以使用CLS来收集和管理应用程序的日志数据,并通过CLS的检索和分析功能来查询和分析日志数据。

腾讯云日志服务产品介绍链接地址:https://cloud.tencent.com/product/cls

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

相关·内容

mongoDB设置权限登陆keystonejs中创建数据库连接实例

# 问题 mongoDB默认登陆时无密码登陆,为了安全起见,需要给mongoDB设置权限登录,但是keystoneJS默认是无密码登陆,这是需要修改配置来解决问题 # 解决 keystone.js...brand': 'recoluan', 'mongo': 'mongodb://user:password@host:port/dbName', }); 1 2 3 4 5 复制 这里需要注意是...,mongoDB设置权限登录时候,首先必须设置一个权限最大主账户,它用来增删其他普通账户,记住,这个主账户时 无法 用来设置mongo对象, 你需要用这个主账户创建一个数据库(下面称“dbName...”),然后在这个dbName上再创建一个可读写dbName普通账户,这个普通账户user和password和dbName用来配置mongo对象

2.4K10
  • ASP.NET Core 中修改配置文件自动加载配置

    ASP.NET Core 中修改配置文件自动加载配置 ASP.NET Core 默认应用程序模板中, 配置文件处理如下面的代码所示: config.AddJsonFile( path...可以 ASP.NET Core 应用中利用这个特性, 实现修改配置文件之后, 不需要重启应用, 自动加载修改过配置文件, 从而减少系统停机时间。...控制器 (Controller) 中加载修改过后配置 控制器 (Controller) ASP.NET Core 应用依赖注入容器中注册生命周期是 Scoped , 即每次请求都会创建控制器实例..., 根据中间件创建处理连时创建一次全局实例, 所以只能通过注入 IOptionsMonitor 来监听配置文件修改情况, 示例代码如下: public class TestMiddleware..., 因此推荐这种做法。

    2.5K71

    Springboot 整合 log4j2 日志详解

    使用了 slf4j ,对于应用程序来说,无论底层日志框架如何变,应用程序不需要修改任意一行代码,就可以直接上线了。...; 在这列举一下一些网上其他博文中对它们性能评测: 可以看到同步日志模式下,Logback 性能是最糟糕. log4j2 性能无论同步日志模式还是异步日志模式下都是最佳. log4j2 优越性能其原因在于...fileName: 指定输出日志目的文件带全路径文件名. PatternLayout: 输出格式,设置默认为:% m% n....RollingFile 节点用来定义超过指定条件自动删除旧创建 Appender. name: 指定 Appender 名字....DefaultRolloverStrategy: 用来指定同一个文件夹下最多有几个日志文件时开始删除最旧创建 (通过 max 属性)。

    1.2K10

    带你深入Java Log框架,彻底搞懂Log4J、Log4J2、LogBack,SLF4J

    Log4J2是Apache开发一个日志框架,改进了很多Log4J缺点,同时也借鉴了LogBack,号称性能上也是完胜LogBack。性能这块后面我会仔细分析。...fileName:指定输出日志目的文件带全路径文件名。 PatternLayout:输出格式,设置默认为:%m%n。...RollingFile节点用来定义超过指定大小自动删除旧创建Appender。 name:指定Appender名字。 fileName:指定输出日志目的文件带全路径文件名。...DefaultRolloverStrategy:用来指定同一个文件夹下最多有几个日志文件时开始删除最旧创建(通过max属性)。 3....Debug:指出细粒度信息事件对调试应用程序是非常有帮助。 Info:消息粗粒度级别上突出强调应用程序运行过程。 Warn:输出警告及warn以下级别的日志。 Error:输出错误信息日志

    2.5K31

    SpringBoot面试题及答案140道(2021年最新)

    加载主应用程序属性文件,Spring将在(application{environment} .properties)中加载后续应用程序属性文件 2、什么是 JavaConfig?...基于依赖注入原则外化配置好处已被证明。但是,许多开发人员希望 XML 和 Java 之间来回切换。...过滤程序包方法不尽相同。但是弹簧启动提供了一个更复杂选项,可以接触组件扫描情况下实现这一点。使用注释@ SpringBootApplication时,可以使用排除属性。...SpringBoot 支持 Java Util Logging, Log4j2, Lockback 作为日志框架,如果你使用 Starters 启动器,SpringBoot 将使用 Logback 作为默认日志框架...SpringBoot 支持 Java Util Logging, Log4j2, Lockback 作为日志框架,如果你使用 Starters 启动器,SpringBoot 将使用 Logback 作为默认日志框架

    1.6K30

    log4j2.xml放在哪里_log4j2配置文件详解

    fileName:指定输出日志目的文件带全路径文件名。   PatternLayout:输出格式,设置默认为:%m%n。...RollingFile节点用来定义超过指定大小自动删除旧创建Appender。   name:指定Appender名字。   ...fileName:指定输出日志目的文件带全路径文件名。   PatternLayout:输出格式,设置默认为:%m%n。   filePattern:指定新建日志文件名称格式。   ...DefaultRolloverStrategy:用来指定同一个文件夹下最多有几个日志文件时开始删除最旧创建(通过max属性)。...Debug:指出细粒度信息事件对调试应用程序是非常有帮助。   Info:消息粗粒度级别上突出强调应用程序运行过程。   Warn:输出警告及warn以下级别的日志

    3.1K30

    log4j2.xml放在哪里_log4j日志配置详解

    系统选择配置文件优先级(从先到)如下:   (1).classpath下名为log4j2-test.json 或者log4j2-test.jsn文件....RollingFile节点用来定义超过指定大小自动删除旧创建Appender。   name:指定Appender名字。   ...DefaultRolloverStrategy:用来指定同一个文件夹下最多有几个日志文件时开始删除最旧创建(通过max属性)。...Debug:指出细粒度信息事件对调试应用程序是非常有帮助。   Info:消息粗粒度级别上突出强调应用程序运行过程。   Warn:输出警告及warn以下级别的日志。   ...--Configuration后面的status,这个用于设置log4j2自身内部信息输出,可以设置,当设置成trace时,你会看到log4j2内部各种详细输出--> <!

    1.3K20

    Spring Boot 3中一套可以直接用于生产环境Log4J2日志配置

    文章目录 一 Log4J2 相关概念及基本特点 二 Spring Boot3 中启用Log4J2pom.xml配置 三 application.properties 配置 四 完整配置 一 Log4J2...Console节点用来定义输出到控制台Appender;RollingFile节点用来定义超过指定条件自动删除旧创建Appender;File节点用来定义输出到指定位置文件Appender。...=UTF-8 # Log4J2自定义配置路径,放置到resources目录下 logging.config=classpath:logback.xml # 应用程序路径 logging.level.com.test...--当前日志与开始日期匹配(RollingFile中配置filePattern中配置最小时间单位匹配时)时进行归档--> <TimeBasedTriggeringPolicy...--文件超过512M进行归档,SizeBasedTriggeringPolicy规定了当日志文件达到了指定size时,触发rollover操作。

    2K10

    聊一聊log4j2配置文件log4j2.xml

    fileName:指定输出日志目的文件带全路径文件名.         PatternLayout:输出格式,设置默认为:%m%n....RollingFile节点用来定义超过指定大小自动删除旧创建Appender.         name:指定Appender名字.         ...DefaultRolloverStrategy:用来指定同一个文件夹下最多有几个日志文件时开始删除最旧创建(通过max属性)。     ...Debug:指出细粒度信息事件对调试应用程序是非常有帮助.       Info:消息粗粒度级别上突出强调应用程序运行过程.       ...--Configuration后面的status,这个用于设置log4j2自身内部信息输出,可以设置,当设置成trace时,你会看到log4j2内部各种详细输出--> 4 <!

    6.1K40

    log4j2配置文件log4j2.xml

    log4j2配置文件详解,就需要我们来好好聊一聊了。...RollingFile节点用来定义超过指定大小自动删除旧创建Appender. name: 指定Appender名字. fileName: 指定输出日志目的文件带全路径文件名....DefaultRolloverStrategy: 用来指定同一个文件夹下最多有几个日志文件时开始删除最旧创建(通过max属性)。...Debug: 指出细粒度信息事件对调试应用程序是非常有帮助. Info: 消息粗粒度级别上突出强调应用程序运行过程. Warn: 输出警告及warn以下级别的日志....--Configuration后面的status,这个用于设置log4j2自身内部信息输出,可以设置,当设置成trace时,你会看到log4j2内部各种详细输出--> <!

    53720

    Log4j1升级Log4j2实战

    绝大多数人都认可日志重要性,但是又有多少人仔细想过该怎么打日志日志对性能影响究竟有多大呢? Log4j 2.0版本有了大幅性能提升、插件系统,以及配置设置方面的很多改善。...自动配置加载:像Logback一样,一旦配置发生改变,Log4j2可以自动载入这些更改配置信息,又与Logback不同,配置发生改变时不会丢失任何日志事件。...无需修改任何Log4j代码就可以创建Appender、Layout、Pattern Convert 等等。Log4j自动识别预定义插件,如果在配置中引用到这些插件,Log4j就自动载入使用。... 该片段表明log4j2配置文件所有内容都在这个标签内,其status属性为“WARN”说明:log4j2内部日志会将日志级别大于WARN日志打印到Console。...异步日志器是Log4j2新增日志器,它目的是让我们应用程序调用Logger.log()打印日志时立马返回。

    3K30

    Log4j2 + SLF4j打造日志系统

    \warn\error所有的日志,WARN使其只包含warn日志,ERROR使其只包含error日志,这样发现错误和异常更加便利 将日志文件压缩存储,减少资源消耗 控制日志文件数量,保证日志可追溯许可范围下删除过早日志文件...name:指定Appender名字. fileName:指定输出日志目的文件带全路径文件名. PatternLayout:输出格式,设置默认为:%m%n....RollingFile节点用来定义超过指定大小自动删除旧创建Appender并且可以压缩文件....PatternLayout:输出格式,设置默认为:%m%n. filePattern:指定新建日志文件名称格式. Policies:指定滚动日志策略,就是什么时候进行新建日志文件输出日志....DefaultRolloverStrategy:用来指定同一个文件夹下最多有几个日志文件时开始删除最旧创建(通过max属性)。

    3.2K20

    Apache Log4j2详解

    ,混合日志和异步日志配置详解 配置文件详解 日志重复打印问题 使用Lombok工具简化创建Logger类 简介 Apache Log4j 2是对Log4j升级,它比其前身Log4j 1.x提供了重大改进...无垃圾机制 稳态日志记录期间,Log4j 2 独立应用程序中是无垃圾Web应用程序中是低垃圾。这减少了垃圾收集器压力,并且可以提供更好响应性能。...添加配置文件 默认情况下,Log4j2classpath下查找名为log4j2.xml配置文件。你也可以使用Java启动命令指定配置文件全路径。...,混合日志和异步日志配置详解 Log4j2同步日志,混合日志和异步日志配置详解 配置文件详解 Log4j2配置文件详解 日志重复打印问题 如果Root中日志包含了Logger中日志信息,并且AppenderRef...具体介绍可以看我博客Lombok简介、使用、工作原理、优缺点 使用Lombok,@Slf4j注解生成了log日志常量,无需去声明一个log就可以类中使用log记录日志

    1.2K30

    Java日志体系框架总结:JUL、JCL、SLF4J、Log4j、Logback、Log4j2

    概述 日志记录是应用程序运行中必不可少一部分。具有良好格式和完备信息日志,可以程序出现问题时帮助开发人员迅速地定位错误根源。...、按Web应用程序隔离日志记录等。...Log4j2 Logback2017年3月31日发布1.2.3版本很长一段时间内几乎处于停滞状态,这也使得Maven上看到这个版本Usages高达1w多。...即不会由于Log4j2而导致GC。Log4j2中各种Message对象,字符串数组,字节数组等全部复用,不重复创建,大大减少无用对象创建,从而做到零GC。...重新配置期间,两个Configuaration会同时存在;一旦日志器被重新赋予Configuaration,旧Configuaration就会停止工作并丢弃。

    11210

    组件日志单独打印

    主要解决两个问题: 组件日志需要单独打印 需要兼容项目项目里面的Log2j.xml配置文件,不和业务项目日志文件冲突 这里会有同学说,我配置一个logj2文件,其实是不行。...Log4j2应用程序提供了几种创建自己编程配置方法: 指定自定义ConfigurationFactory以使用编程配置启动Log4j Log4j启动,使用Configurator替换配置 使用配置文件和编程配置组合初始化...Log4j 初始化修改当前配置 这里说一下第四种:有时你使用配置文件进行配置,但需要进行一些额外编程配置。...实现这一点最简单方法是扩展其中一个标准配置类(XmlConfiguration、JSONConfiguration),然后为扩展类创建一个ConfigurationFactory。...log4j2初始化配置时候,加入自己单独配置,兼容业务配置,而且对业务无感。

    12310

    ​可观测性之Log4j2优雅日志打印

    无垃圾与低垃圾 :稳态日志记录期间,Log4j 2独立应用程序中是无垃圾,Web 应用程序中是低垃圾。...用于让使用者打印日志使用,可以为每个类创建不同日志记录器,Logger 本身执行任何直接操作。...LoggerConfig(记录器配置): LoggerConfig对象是日志记录配置中声明Logger时创建。...log4j2.xmlLog4j2日志配置文件是大部分情况下是通过配置日志xml文件来生效,这个配置文件路径默认是根路径下log4j2.xml配置文件中,当然也可以通过JVM参数中指定一个其它位置日志配置路径...,Java日志组件中很多地方使用了日志实现自动扫描扩展机制,如果随意引入兼容依赖包之后被扩展机制扫描到,就很容易出现日志不打印问题,对于Java 日志依赖引入,我们可以先了解其曲折发展历史

    1.3K30

    重学SpringBoot3-日志Logging

    引言 日志记录是任何应用程序开发过程中一个重要部分,它帮助开发人员了解应用程序运行状态、诊断问题并进行有效错误跟踪。... SpringBoot 中,日志门面是指通过引入日志框架抽象层来统一管理应用程序日志输出。...通过使用日志门面,开发者可以不改变应用程序代码情况下,灵活地切换和配置不同日志实现框架,从而更好地适应不同部署环境和需求。...:致命错误日志,比如 jvm系统崩溃 OFF:关闭所有日志记录 指定级别的所有类,都使用 root 指定级别作为默认级别 SpringBoot3 日志默认级别是 INFO 你可以 application.yml...设置 1GB 则磁盘存储超过 1GB 日志就会删除旧日志文件 logging.logback.rollingpolicy.max-history 日志文件保存最大天数(默认值:7).

    22510

    Springboot整合log4j2日志全解

    常用日志框架 java.util.logging:是JDK1.4版本中引入Java原生日志框架 Log4j:Apache一个开源项目,可以控制日志信息输送目的地是控制台、文件、GUI组件等,可以控制每一条日志输出格式...前面介绍几种日志框架一样,每一种日志框架都有自己单独API,要使用对应框架就要使用其对应API,这就大大增加应用程序代码对于日志框架耦合性。...使用了slf4j,对于应用程序来说,无论底层日志框架如何变,应用程序不需要修改任意一行代码,就可以直接上线了。 为什么选用log4j2 在这列举一下一些网上其他博文中对它们性能评测: ?...可以看到同步日志模式下, Logback性能是最糟糕. log4j2性能无论同步日志模式还是异步日志模式下都是最佳. ?...--Configuration后面的status,这个用于设置log4j2自身内部信息输出,可以设置,当设置成trace时,你会看到log4j2内部各种详细输出--> <!

    5.6K21
    领券