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

时间:2016-11-09 18:31:34

标签: logback

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

每分钟,我都会看到以下形式发出的日志消息:

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

为什么会发生这种情况?如何摆脱这些?

5 个答案:

答案 0 :(得分:5)

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

如果ReconfigureOnChangeTask没有任何要观看的文件,sprites[i] = (Sprite)EditorGUILayout.ObjectField(sprites[i], typeof(Sprite), true); 将会log this line

它没有任何要观看的文件,因为该文件位于jar中,它将only watch files on the filesystem。这是有道理的,因为jar文件中的文件通常不会改变。

答案 1 :(得分:2)

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

答案 2 :(得分:2)

只需删除第一行配置中的scan =“true”即可

答案 3 :(得分:1)

可能是通过文件系统中的文件覆盖jar文件中的logback.xml。应该调用主类而不是runnnig jar。

假设我们有一个包含清单的jar文件:

META-INF/MANIFEST.MF
...
Main-Class: a.b.c.jetty.MyMainClass

调用MyMainClass:

java -cp path2logbackXml:path2jarfile a.b.c.MyMainClass

而不是

java -jar path2jarfile

答案 4 :(得分:1)

  1. 发生此问题是由于Logback配置中的scan属性。如果您不打算更改日志级别的运行时,请从配置中删除 scan and scanPeriod 属性。
  2. 如果要更改日志级别运行时,则需要在logback.xml中配置 scan and 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);
    }
}