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
禁止从第三方jar记录java util_Java_Logging_Slf4j - Fatal编程技术网

禁止从第三方jar记录java util

禁止从第三方jar记录java util,java,logging,slf4j,Java,Logging,Slf4j,在我的eclipse控制台中,我从第三方jar收到了大量的信息日志消息。打开jar,我看到它使用java.util.logging。我想将他们的jar的输出级别设置为WARNING 我已经尝试使用-Djava.util.logging.config.file=pathomy/JUL.properties的VM参数 其中,文件的内容为: handlers=java.util.logging.ConsoleHandler .level=WARNING java.util.logging.Consol

在我的eclipse控制台中,我从第三方jar收到了大量的信息日志消息。打开jar,我看到它使用java.util.logging。我想将他们的jar的输出级别设置为WARNING

我已经尝试使用-Djava.util.logging.config.file=pathomy/JUL.properties的VM参数 其中,文件的内容为:

handlers=java.util.logging.ConsoleHandler
.level=WARNING
java.util.logging.ConsoleHandler.level=WARNING
不幸的是,这对输出没有影响


如果让它更简单的话,我的应用程序使用SLF4J。因此,如果有一个使用不同日志机制的简单答案,我可以切换我的绑定以使用它。

我认为下面的代码片段可能很有用。它将允许您在包级别设置日志行为:

Logger logger = Logger.getLogger("org.apache.axiom");
logger.setLevel(Level.WARN);

我想你可能有以下有用的片段。它将允许您在包级别设置日志行为:

Logger logger = Logger.getLogger("org.apache.axiom");
logger.setLevel(Level.WARN);
您是否曾经确定:

  • VM摘要选项卡显示设置了系统属性“java.util.logging.config.file”
  • MBean选项卡->java.util.logging->Operations->getLoggerLevel of blank(无值)返回警告
  • MBean选项卡->java.util.logging->Attributes->LoggerNames包含活动的第三方记录器列表,可以将其添加到要禁用的内容列表中。只有在执行代码创建了记录器时,才会列出记录器。未列出,但默认设置从根记录器继承
  • 您还可以添加以下代码以检查配置文件是否正常工作:

        public static void main(String[] arg) throws Exception {
            String p = System.getProperty("java.util.logging.config.file");
            System.out.println(p);
            System.out.println(new File(p).length());
            System.out.println(Logger.getLogger("").getLevel());
        }
    
    您是否曾经确定:

  • VM摘要选项卡显示设置了系统属性“java.util.logging.config.file”
  • MBean选项卡->java.util.logging->Operations->getLoggerLevel of blank(无值)返回警告
  • MBean选项卡->java.util.logging->Attributes->LoggerNames包含活动的第三方记录器列表,可以将其添加到要禁用的内容列表中。只有在执行代码创建了记录器时,才会列出记录器。未列出,但默认设置从根记录器继承
  • 您还可以添加以下代码以检查配置文件是否正常工作:

        public static void main(String[] arg) throws Exception {
            String p = System.getProperty("java.util.logging.config.file");
            System.out.println(p);
            System.out.println(new File(p).length());
            System.out.println(Logger.getLogger("").getLevel());
        }
    

    在对jar进行反编译以找到如何设置日志级别之前,您可以尝试搜索setLogLevel api,以查找需要调试的组件

    setLogWriter(新的PrintWriter(System.out))


    在对jar进行反编译以找到如何设置日志级别之前,您可以尝试搜索setLogLevel api,以查找需要调试的组件

    setLogWriter(新的PrintWriter(System.out))


    我相信你可以在包级别设置级别。我相信你可以在包级别设置级别。在你的帖子中不需要使用签名。请注意,在底部显示您的用户名和您为帐户选择的化身。我也尝试过,但没有效果。这就是为什么我也尝试通过属性文件并做了一个笼统的声明,将所有内容都设置为警告,这是迄今为止最好的答案。简单,独立于任何IDE、工具或“选项卡”,无需额外配置文件,也无需更改库。它就像一个符咒,在你的帖子里没有必要使用签名。请注意,在底部显示您的用户名和您为帐户选择的化身。我也尝试过,但没有效果。这就是为什么我也尝试通过属性文件并做了一个笼统的声明,将所有内容都设置为警告,这是迄今为止最好的答案。简单,独立于任何IDE、工具或“选项卡”,无需额外配置文件,也无需更改库。我遵循了你上面的所有步骤,除了#3之外,一切看起来都是正确的。我没有看到活动的第三方记录器列表。那么,它们是如何将输出输出到控制台的?它们可以被禁用吗?我更新了答案,以包括它们未被列出的一些原因。是使用全局记录器吗?不幸的是,我不得不让第三方开发人员将属性文件直接添加到他们的jar中。我为提供有用的信息和帮助而加分:)我遵循了你上面的所有步骤,除了#3之外,一切看起来都是正确的。我没有看到活动的第三方记录器列表。那么,它们是如何将输出输出到控制台的?它们可以被禁用吗?我更新了答案,以包括它们未被列出的一些原因。是使用全局记录器吗?不幸的是,我不得不让第三方开发人员将属性文件直接添加到他们的jar中。我为提供有用的信息和帮助而奖励分数:)