当前位置: 首页 > 知识库问答 >
问题:

log4j2-创建新日志文件

华森
2023-03-14

我有将日志保存到文件配置,但日志会附加到现有内容。我想创建总是新的文件。我怎么能那样做?

我的log4j2.xml:

    <?xml version="1.0" encoding="UTF-8"?>
<Configuration>
    <Appenders>
        <File name="File" fileName="out.log">
            <PatternLayout pattern="[%d{ISO8601} %-5level] %logger{36} - %msg%n"/>
        </File>
    </Appenders>
    <Loggers>
        <Root level="error">
            <AppenderRef ref="File"/>
        </Root>
        <Root level="info">
            <AppenderRef ref="File"/>
        </Root>
    </Loggers>
</Configuration>

共有1个答案

孔鹤龄
2023-03-14

FileAppender有一个名为append的属性,该属性的默认值为true,因此按如下方式配置它:

<File name="File" fileName="out.log" append="false">

文档可在https://logging.apache.org/log4j/2.x/manual/appenders.html#fileappender上找到

 类似资料:
  • 问题内容: 我当前正在创建一个可以包含模块的系统(将它们视为插件),其中每个模块可以拥有自己的专用日志。 我想使用log4j2项目进行日志记录,但是文件附加器似乎有些麻烦。 主项目(整个模块的模块加载器和“核心”)应具有自己的日志文件,而模块应具有自己的日志文件(如)。 通过阅读有关追加程序的文档,我发现了该类,并且我将使用它。直到我发现不能简单地将追加器添加到由创建的默认记录器中。 LogMan

  • 我目前正在创建一个系统,可以有模块(把它们看作插件),其中每一个都可以有自己的日志,专用的。 我想使用log4j2项目进行日志记录,但我似乎在文件附加符方面遇到了一些麻烦。 主项目(模块加载器和整个事情的“核心”)应该有自己的日志文件,而模块应该有自己的日志文件(像)。 即使搜索也没有给我提供任何接近的解决方案,我找到的只是xml配置中预定义的文件日志--这不是我想要的。 感谢你的阅读;即使是最轻

  • 我正在使用带有log4j2的Spring Boot1.5.9,当我测试日志记录功能时,创建了日志文件,但没有将日志写入其中,而控制台日志记录程序运行良好。请在pom.xml&log4j2.properties配置下面找到。 log4j2.properties文件:

  • 我想设置日志级别、文件名和日志文件的文件路径。我找到了一种方法来实现这一点,除了log4j创建一个附加的日志文件外,其他方法都可以实现。我得到了下面的log4j2。xml: 在我的主函数中,我设置了${sys:logDir}和${sys:logFilename}: 它像我想要的那样工作,但是log4j在我的主项目路径中创建了一个名为“${sys:logDir}${sys:logFilename}”

  • 我已经将log4j2.properties文件与springboot应用程序一起使用。正在创建日志文件,但日志未写入该文件。 日志出现在控制台,但没有写入文件,因为我没有得到问题。 奇怪的是,父包记录器“logger Enabled:Enting main\n\n”被写入文件,而另一个父包记录器“****演示应用程序启动*****”没有被写入文件,如上面的代码所示。并且还检查了子包,即记录器,甚至

  • 我最近升级到了log4j2,发现当java进程启动并初始化log4j上下文时,log4j为我的所有滚动文件追加器创建了空日志文件。因此,即使我的一些作业线程没有运行,它们也会为相关appender创建空日志文件。 有没有办法将日志文件的创建推迟到触发第一个LogEvent的时间? 附言-我见过如何让log4j仅按需创建日志文件?但它没有多大帮助。