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

配置发生时,log4j2创建空日志文件

农均
2023-03-14

我最近升级到了log4j2,发现当java进程启动并初始化log4j上下文时,log4j为我的所有滚动文件追加器创建了空日志文件。因此,即使我的一些作业线程没有运行,它们也会为相关appender创建空日志文件。

有没有办法将日志文件的创建推迟到触发第一个LogEvent的时间?

附言-我见过如何让log4j仅按需创建日志文件?但它没有多大帮助。

共有1个答案

裴昕
2023-03-14

您需要将createOnDemand参数的值设置为true,默认情况下为false。

注意:Log4j-2.7支持此功能。因此,如果您使用的是旧版本,则需要升级才能使用此功能。

 类似资料:
  • 我有将日志保存到文件配置,但日志会附加到现有内容。我想创建总是新的文件。我怎么能那样做? 我的log4j2.xml:

  • 我是Log4J2的新手。我正在尝试配置一个使用slf4j和LOG4J2的日志记录系统。

  • 以下是我的项目结构: src- src- 下面是我的log4j2。属性文件: 对于上述配置,我无法生成日志 这行有什么问题吗。滚动的。name=com。迪特。滤器ax? 谁能告诉我我在这个配置中犯了什么错误? 或 建议我使用其他方法为上述指定的包结构生成日志

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

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

  • 我在我的项目中使用log4j2,如下所示: 我的配置文件如下所示: 它创建了我的文件,我在其中记录了一些东西,但它仍然是空的。当我试图删除这个文件时,操作系统告诉我它正在使用中(若应用程序正在工作),但即使我停止应用程序,文件仍然是空的。 那么,我应该更改哪些设置以使其正常工作?