Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java logback-重新加载配置时的聊天日志记录_Java_Logging_Configuration_Logback - Fatal编程技术网

Java logback-重新加载配置时的聊天日志记录

Java logback-重新加载配置时的聊天日志记录,java,logging,configuration,logback,Java,Logging,Configuration,Logback,我试图使重新加载配置时发生的logback的内部日志保持沉默。我也研究了这个问题,并尝试了每一个推荐的解决方案。然而,这个案例似乎有点不同。在大多数情况下,logback表现良好。在我重新加载之前,一旦重新加载完成,它不会发出窥视,但是当重新加载运行时,它会记录 我试过: 将通道qos记录器设置为警告 配置始终为debug=“false” 使用编码器而不是布局 向配置中添加了NopStatusListener 升级至最新的logback(1.1.2) 确保没有错误。只记录信息消息 尝试使用筛选器

我试图使重新加载配置时发生的logback的内部日志保持沉默。我也研究了这个问题,并尝试了每一个推荐的解决方案。然而,这个案例似乎有点不同。在大多数情况下,logback表现良好。在我重新加载之前,一旦重新加载完成,它不会发出窥视,但是当重新加载运行时,它会记录

我试过:

  • 通道qos记录器设置为警告
  • 配置始终为debug=“false”
  • 使用编码器而不是布局
  • 向配置中添加了NopStatusListener
  • 升级至最新的logback(1.1.2)
  • 确保没有错误。只记录信息消息
  • 尝试使用筛选器拒绝任何不属于>信息的ch.qos事件
  • 在类路径中只有一个logback.xml,尽管我在同一个目录中也有一个文件-logback.xml,这是我正在进行的切换,它导致了这种聊天日志记录,但我认为该文件不会妨碍。(以上所有项目都适用于这两个文件,我尝试将文件-logback.xml重命名为神秘的名称,以确保它没有被错误地提取)
  • 我怀疑问题在于,当调用ch.qos.logback.classic.jmx.JMXConfiguratorMBean.reloadByURL时,它首先重置配置,然后加载新配置。在interrim中,既没有一个有效的配置,也没有另一个有效的配置,因此回退是登录到INFO

    有什么建议可以让这家伙安静下来吗


    谢谢。

    我想实际上在堆栈上写一个问题会让脑细胞有点动摇。因此,我通过直接调用JoranConfigurator并跳过重置过程来修复此问题。此外,我从根记录器中删除了标准输出附加器(因为其目的是从标准输出切换到文件记录)

        final URL url = Main.class.getClassLoader().getResource("file-logback.xml");
        final LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
        try {
            final JoranConfigurator configurator = new JoranConfigurator();
            configurator.setContext(context);
            configurator.doConfigure(url);
            final ch.qos.logback.classic.Logger root = (ch.qos.logback.classic.Logger)LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
            root.detachAppender("STDOUT");
            log.info("Set internal logback config with file [{}] and roll pattern [{}]", logFileName, rollPattern);
        } catch (JoranException je) {
            System.err.println("Failed to configure internal logback");
            je.printStackTrace(System.err);
        }