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

log4j2 RollingFileAppender CronTriggeringPolicy引发NoSuchFileException

史弘致
2023-03-14

我使用的是log4j2 2.7版本,并且我配置了log4j2附加器,该附加器应每分钟滚动一次:

<Appenders>
    <Console name="ConsoleAppender" target="SYSTEM_OUT" follow="true">
        <PatternLayout pattern="${LOG_PATTERN}"/>
    </Console>
    <RollingFile name="File" fileName="C://api.log"
                 filePattern="C://ssvp-api.log//api.%d{yyyyMMdd.HHmm}.log">
        <PatternLayout pattern="${LOG_PATTERN}"/>
        <Policies>
            <SizeBasedTriggeringPolicy size="50 MB"/>
            <CronTriggeringPolicy schedule="0 0/1 * * * ?"/>
        </Policies>
    </RollingFile>

</Appenders>

但由于一些未知的原因,我在日志翻转期间收到以下异常:

2018-06-06 14:52:00,018 Log4j2-TF-3-Scheduled-1 ERROR Unable to move file C:\api.20180606.1448.log to C:\api.20180606.1448.log: java.nio.file.NoSuchFileException C:\api.20180606.1448.log -> C:\api.20180606.1448.log
2018-06-06 14:52:00,019 Log4j2-TF-3-Scheduled-1 ERROR Unable to copy file C:\api.20180606.1448.log to C:\api.20180606.1448.log: java.nio.file.NoSuchFileException C:\api.20180606.1448.log

但如果我将%I更新为C://ssvp-api.log//api.%d{yyyymmdd.hhmm}-%I.log,则一切正常,但我不想在日志文件名中添加其他文件号(例如API.20180606.1448-1.log)

有没有机会避免在日志文件名中有文件号?

共有1个答案

堵远航
2023-03-14

最后,我发现log4j2 2.7版本包含几个与CronTriggeringPolicy功能相关的问题,它们是:https://isses.apache.org/jira/browse/log4j2-1487 https://isses.apache.org/jira/browse/log4j2-1640更新到2.8.1版本解决了我的问题。

 类似资料:
  • 问题内容: 我只想从mongodb信息中处理对象,但是当我执行此方法时,要使一些对象成为对象,但总是返回该错误java.util.NoSuchElementException。 问题答案: 可能的问题是,您在一个循环中调用了3次方法。您应该调用一次并将其结果存储在变量中,因为它会检索迭代中的下一个元素

  • 问题内容: 我正在尝试使用IntelliJ 12.1.3使用JPA测试Hibernate 4.2.1.Final,但出现以下错误。 一切似乎都设置正确(我让IntelliJ生成了映射),由于我对Hibernate和JPA的经验为零,所以我无所适从。 为什么要启用NPE? 主类: 错误: Persistance.xml 问题答案: 该消息向我表明它无法连接到数据库。仔细检查您的连接字符串,并确保您的

  • 我正在使用gson将json字符串转换为Java对象。result2的值与Result1的值完全相同。(从调试器复制;添加反斜杠) 转换Result1:com.google.gson.JsonSyntaxException时引发以下异常:com.google.gson.stream.MalFormedJsonException:第1行第170列需要EOF 转换result2工作良好。 json字符

  • 好吧,所以我显然不太理解doReturn(...)。when(...)当(...).Thenreturn(...).

  • 我需要创建自己的UnaryTransformer实例,该实例接受类型为Array[String]的Dataframe列,并且还应该输出相同的类型。在尝试这样做时,我在Spark版本2.1.0上遇到了ClassCastException。我做了一个样本测试来证明我的情况。 附加堆栈跟踪以供参考

  • 我的目标是向已创建的现有表中添加一个新行。但是,我得到以下错误。 输入学号:1234567 输入名字:Hello 输入姓氏:World 增加的价值 com.mysql.jdbc.exceptions.jdbc4.mysqlsyntaxerrorexception... 我明白这可能是一个非常愚蠢的问题,但我刚刚开始使用数据库,即使在查看了这里发布的大多数类似问题后,也无法找出代码哪里有问题。