java - log4j2 RollingFileAppender CronTriggeringPolicy 抛出 NoSuchFileException
问题描述
我使用 log4j2 2.7 版本,并且我有 log4j2 配置的 appender,应该每分钟翻转一次:
<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 将我的 filePattern 更新为C://ssvp-api.log//api.%d{yyyyMMdd.HHmm}-%i.log一切正常,但我不想有额外的文件号在我的日志文件名中(例如 api.20180606.1448-1.log)
是否有机会避免在日志文件名中包含文件号?
解决方案
最后,我发现 log4j2 2.7 版本包含几个与 CronTriggeringPolicy 功能相关的问题,它们是: https ://issues.apache.org/jira/browse/LOG4J2-1487 https://issues.apache.org/jira/浏览/LOG4J2-1640 更新到 2.8.1 版本解决了我的问题。
推荐阅读
- r - 在 Rshiny Dashboaord 上生成饼图
- flutter - 颤振中permission_handler包的未定义名称“权限”
- docker - 带有本地执行程序的 Airflow 2.0 Docker 设置
- unreal-engine4 - 如何在虚幻引擎4中启用鼠标在播放模式下移动对象
- javascript - 如何在 Facebook 上检索我所有的朋友和我朋友的朋友?
- html - 未找到 jinja2 模板 - 未解决
- java - 如何从文件中读取文本并替换丢失的数据?
- java - 在 NetBeans 8.2 IDE 开发程序中使用 javamail 将 3 个文件发送给收件人
- mysql - Xampp安装和.frm文件上的Mysql致命错误
- android - 在 Fragments Kotlin Android Studio 中上下文这个问题