【发布时间】:2022-01-10 18:41:25
【问题描述】:
我有一个非常常用的 java 类,我只想每小时记录一个语句,而不是一直。这是为了停止不需要的日志频率。 我可以初始化一个计时器,并且仅在计时器达到 60 分钟后才记录,还有其他优雅的方法可以实现这一点吗?
【问题讨论】:
我有一个非常常用的 java 类,我只想每小时记录一个语句,而不是一直。这是为了停止不需要的日志频率。 我可以初始化一个计时器,并且仅在计时器达到 60 分钟后才记录,还有其他优雅的方法可以实现这一点吗?
【问题讨论】:
我找不到任何带有 logback 的现成的速率限制过滤器。似乎必须实现自己的过滤器。一个好的模板可以找到here。
log4j 允许根据documentation 指定可以限制记录速率的过滤器。 您可以在 appender 中使用 BurstFilter 并指定您想要的每秒事件数(它是一个浮点数,因此您可以传递一个
<BurstFilter level="INFO" rate="16" maxBurst="100"/>
由于您不希望在全局范围内应用它,您可以专门为这个冗长的 Java 类创建一个单独的附加程序。
【讨论】: