如何防止重新发出重复的"空监视文件列表.禁用"消息

esw*_*son 7 logback

我在logback.xml配置了logback:http://pastebin.com/KuqUEkXy .

每分钟,我都会看到表单中发出的日志消息:

18:26:21,486 | -INFO in ReconfigureOnChangeTask(born:1478715201485) - 空监视文件列表.禁用

为什么会这样,我怎么能摆脱这些?

Wou*_*erH 6

我可以告诉你为什么会这样,但不能告诉你如何摆脱它们.

ReconfigureOnChangeTask记录这条线时,它没有任何文件来观看.

并且它没有任何要观看的文件,因为该文件位于jar中,并且它只会监视文件系统上的文件.这是有道理的,因为jar文件中的文件通常不会改变.


小智 5

在您的 logback 配置 (logback.xml) 中,您必须关闭(或者更好,只需删除)配置元素中的扫描属性

  • 感谢您在 StackOverflow 上发表第一篇文章!双重感谢您首先接受答案。考虑阅读如何最好地回答 Stack Overflow 上的问题:https://stackoverflow.com/help/how-to-answer (2认同)

小智 5

只需删除配置第一行中的 scan="true"


小智 5

  1. 此问题是由于 logback 配置中的 scan 属性而发生的。如果您不打算更改日志级别运行时,请从配置中删除scan 和 scanPeriod属性。
  2. 如果要更改运行时日志级别,需要在logback.xml中配置scan和scanPeriod属性。

为了解决这个问题,我们有两个选择。

  1. 如果您的 logback.xml配置标记包含debug="true" scan="true" scanPeriod="10 秒"。从配置中删除debug="true"

如果您仍然遇到问题,可以执行以下方法。

  1. 覆盖OnConsoleStatusListener

在 logback.xml 中配置以下行

<statusListener class="com.example.CustomOnConsoleStatusListener"/>

import ch.qos.logback.core.status.OnConsoleStatusListener;
import ch.qos.logback.core.status.Status;
public class CustomOnConsoleStatusListener extends OnConsoleStatusListener {
    @Override
    public void addStatusEvent(Status status) {
        
        if (!status.getMessage().contains("Empty watch file list. Disabling"))
            super.addStatusEvent(status);
    }
}
Run Code Online (Sandbox Code Playgroud)