Suppress java util logging from 3rd party jar

佐手、 提交于 2019-12-30 15:01:03

问题


I am getting tons of info log messages from a 3rd party jar in my eclipse console. Cracking open the jar I see that it uses java.util.logging. I would like to set the output level for their jar to WARNING.

I have tried using the VM argument of -Djava.util.logging.config.file=pathToMy/JUL.properties where the contents of the file are:

handlers=java.util.logging.ConsoleHandler
.level=WARNING
java.util.logging.ConsoleHandler.level=WARNING

Unfortunately, that made no difference in the output.

If it makes it any easier, my application uses SLF4J. So if there's a simple answer using a different logging mechanism I can just switch my binding to use it.


回答1:


Have you used JConsole to determine that:

  1. The VM Summary tab shows that the system property 'java.util.logging.config.file' is set.
  2. The MBean tab->java.util.logging->Operations->getLoggerLevel of blank (no value) returns WARNING.
  3. The MBean tab->java.util.logging->Attributes->LoggerNames contains the list of active 3rd party loggers which can be added to your list of things to disable. The loggers will only be listed if the executing code has created them. Anonymous loggers are not listed but, the default settings are inherited from the root logger.

You can also add the following code to check that your config file is working:

    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());
    }



回答2:


I think you may have the following snippet useful. It will allow you to set the log behaviour at package level:

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



回答3:


Before decompile the jar to find how to set Log level you can try to search the setLogLevel api for which component you want debug more.

setLogWriter(new PrintWriter(System.out));



来源:https://stackoverflow.com/questions/26490315/suppress-java-util-logging-from-3rd-party-jar

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!