2

I'm using httpclient from openJDK 11 that comes with an annoying recurrent logging.

Here how it looks like (I'm using spring boot based app):

2020-01-24 18:35:46,806 DEBUG [HttpClient-1-SelectorManager] : [HttpClient-1-SelectorManager] [3840s 992ms] HttpClientImpl(1) Next deadline is 3000 - [] 
2020-01-24 18:35:49,806 DEBUG [HttpClient-1-SelectorManager] : [HttpClient-1-SelectorManager] [3843s 992ms] HttpClientImpl(1) next timeout: 0 - [] 

I've tried to disable it by adding the following entries to logback-spring.xml to no avail:

<logger name="httpclient" level="WARN" />
<logger name="jdk.internal.net.http" level="WARN" />
<logger name="HttpClientImpl" level="WARN" />

<logger name="java.net.http.HttpClient" level="WARN" />
<logger name="HttpClient" level="WARN" />
<logger name="HttpClient-1-SelectorManager" level="WARN" />

Thanks for your help

daniel
  • 2,665
  • 1
  • 8
  • 18

4 Answers4

2

adding java.util.logging.LogManager.getLogManager().reset();to my main method fixed it!

2

The name of that logger is "jdk.internal.httpclient.debug". It only receives traces of level DEBUG, and therefore traces should not appear unless your application (or framework?) enables debug traces by default which is a very strange thing to do.

Try something like:

<logger name="jdk.internal.httpclient.debug" level="WARN" />
daniel
  • 2,665
  • 1
  • 8
  • 18
0

Try to run your app with the system property:

java -Djdk.internal.httpclient.debug=false
  • Sorry that didn't fix the issue; I'm wondering if it's better to switch to commons httpclient... –  Jan 24 '20 at 21:31
0

My solution to handle the log level is creating a new "java.util.logging.Logger" and set the logger to info: "logger.setLevel(Level.INFO)".

import java.util.logging.Logger;
import java.util.logging.ConsoleHandler;
import java.util.logging.FileHandler;
import java.util.logging.Level;

private Logger logger;
private FileHandler fileHandler;
private ConsoleHandler consoleHandler;
private LogFileFormater logFileFormater;
private final int FILE_SIZE = 10240000; //10MB

public class LogFileHandler {

    logger = Logger.getLogger("");
    logFileFormater = new LogFileFormater();

        File logfile = new File("example.log");
        fileHandler = new FileHandler(logfile.getAbsolutePath(), FILE_SIZE, 1, true); //log to file
        consoleHandler = new ConsoleHandler(); //log to console

        fileHandler.setFormatter(logFileFormater);
        consoleHandler.setFormatter(logFileFormater);

        logger.addHandler(fileHandler);
        logger.addHandler(consoleHandler);

        logger.setUseParentHandlers(false);
        logger.setLevel(Level.INFO);

...