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

Log4j2 createondemand=“true”不允许每天创建新文件

燕刚捷
2023-03-14

Log4j2 createondemand=“true”不允许每天创建新文件,尽管使用了带有TimeBasedTriggeringPolicy的RollingFile附加器。

下面是我的log4j2.xml文件。我有两个附加程序,一个用于所有日志,另一个用于自定义目的,它只需要按需生成,但是createOnDemand覆盖了日志的滚动性质,并且不允许为自定义日志创建新的日志文件。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <RollingFile name="App" 
                fileName="app.log" 
                filePattern="app.%d{yyyy-MM-dd}.log">
            <PatternLayout pattern="[%t] %d{yyyy-MM-dd HH:mm:ss,SSS zzz} %-5p %l - %m%n" />
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" />
            </Policies>
        </RollingFile>
        <RollingFile name="custom"
                 fileName="appCustom.log"
                 filePattern="appCustom.%d{yyyy-MM-dd-HH-mm}.log"
                 createOnDemand="true">
        <PatternLayout pattern="[%t] %d{yyyy-MM-dd HH:mm:ss,SSS zzz} %-5p %l - %m%n" />
        <Policies>
            <TimeBasedTriggeringPolicy interval="1" />
        </Policies>
        </RollingFile>
    </Appenders>
    <Loggers>
        <Logger name="AppLogger" level="info" additivity="false">
                <AppenderRef ref="App"/>
            </Logger>
        <Logger name="customLogger" level="info" additivity="false">
            <AppenderRef ref="custom"/>
        </Logger>
        <Root level="info">
                <AppenderRef ref="file" />
        </Root>
    </Loggers>
</Configuration>

共有1个答案

郁明诚
2023-03-14

我已经找到了解决上述问题的方法。这是lo4j2中存在的一个缺陷,在版本-2.13.1中得到了修复

以下是链接:

https://issues.apache.org/jira/browse/log4j2-2759

 类似资料:
  • 问题内容: 我想在我的Java项目中使用Log4j,我应该在配置文件中提供该配置,该配置文件每天晚上12:00将生成一个新文件,并且文件名应类似于 -output- log-of-MyProjectName-HostName-2013-Dec-10。 txt 名称)。我的配置文件就是这样- 它每天都在创建新文件,但在文件名后附加日期。请帮我。提前致谢。 问题答案: 我认为您想要DailyRolli

  • 我有一个长约20万字节的大图像[]。 每当我试图创建blob/clob对象时 我试着把它打开 它还抛出异常,因为setBinaryStream()方法最多只能存储3000字节的数据,但不能超过这个字节。 我搜索并尝试了所有可能的解决方案。 将JDBC和ODBC JAR更新为最新的 还尝试了这个 我发现该应用程序不允许我实例化或设置BLOB/CLOB对象。 我使用的OJDBC4.jar和Oracle

  • 我为gitlab 我为该服务帐户分配了项目和群集的编辑角色 如何允许此serviceaccount创建新项目?

  • 我有两个表,它们的关系如下图所示 我创建了Hibernate数据模型,如下所示 我打算创建如下实体 当我运行这个时,我得到以下错误 org.hibernate.MappingException:实体映射中的重复列:*。SSI 列:CLIENT_ID(应使用 insert=“false” update=“false”进行映射) 如果我设置为CLIENT_ID,它将再次错误关于插入的混合 如果我为所有

  • 我正在尝试创建一个文件。 但是得到错误操作不允许。 我在清单文件中添加了以下权限 我该如何解决这个问题?

  • 如果我试图写入脚本的目录或任何其他目录,则错误是相同的。权限似乎是对的。所有东西都是755,根所有者。我尝试将“my_custom_dir”所有者更改为www-data(apache用户),但没有任何区别。 它“死”在第一线。日志上的错误是“在/usr/lib/cgi-bin/script.cgi拒绝权限”