spring - 如何配置我的 logback 系统,以便它可以在基于时间的滚动周期完成后立即创建日志文件?
问题描述
我的应用程序基于 Jdk8,groovy 2.4 作为语言并在 Spring Framework 之上。作为记录器,我正在使用“logback”依赖项。(组:'ch.qos.logback',名称:'logback-classic',版本:'1.1.8')。基本上,RollingFileAppender 对我来说工作得很好,但目前,我还有一些额外的要求。
例如,假设在2018-05-16 11:08:50调用了特定的 logger 函数,error.log 中输入了一条记录,并且没有创建滚动文件。好吧,当下一次执行大约在2018-05-16 11:15:05 6 分钟后发生时,将创建一个新文件error.2018-05-16-11-08.log和error.log文件仅刷新新消息。此行为根据文档。但目前,我需要在滚动完成后立即创建日志文件。在这种情况下,实际上在2018-05-16 11:15:05创建的新文件error.2018-05-16-11-08.log,我需要在2018-05-16实际创建相同的文件11:09:00(意味着一旦基于分钟的滚动完成)。
<appender name="ERROR_LOG"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logs/error_log/error.%d{yyyy-MM-dd-HH-mm}.log
</fileNamePattern>
<maxHistory>10</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}\t%msg%n</pattern>
</encoder>
</appender>
我知道有一种方法,只需消除输入属性。如果我省略该属性,则问题部分会为我解决。但是,在这种情况下,将不会创建必须保留的 error.log。
请随时问我有关此问题的任何问题。
解决方案
推荐阅读
- c++ - 我的 do while 循环不起作用,我不确定我哪里出错了
- amazon-web-services - 无法从 AWS EC2 实例连接到远程主机
- android - Android - 弹出菜单项出现在导航栏下
- vue.js - 如何在 Quasar2 中调用动态创建/安装的全局组件(Vue3 - 选项 API)
- postgresql - 使用新键更新 jsonb,但如果现有 obj 具有该键,则保留该值
- macos - 构建 GNU findutils 时编译错误“预期标识符”
- paypal - 我的服务器突然不再接收来自 Paypal 的 IPN 请求,工作了多年
- android - 如何使用 Fragments 在导航抽屉中打开菜单?
- javascript - 如何选择和加载外部页面的内容
- linux - 脚本中的 ssh 命令 - 从输出中删除行