How can I disable the default console handler, while using the java logging API? How can I disable the default console handler, while using the java logging API? java java

How can I disable the default console handler, while using the java logging API?


Just do

LogManager.getLogManager().reset();


The default console handler is attached to the root logger, which is a parent of all other loggers including yours. So I see two ways to solve your problem:

If this is only affects this particular class of yours, the simplest solution would be to disable passing the logs up to the parent logger:

logger.setUseParentHandlers(false);

If you want to change this behaviour for your whole app, you could remove the default console handler from the root logger altogether before adding your own handlers:

Logger globalLogger = Logger.getLogger("global");Handler[] handlers = globalLogger.getHandlers();for(Handler handler : handlers) {    globalLogger.removeHandler(handler);}

Note: if you want to use the same log handlers in other classes too, the best way is to move the log configuration into a config file in the long run.


This is strange but Logger.getLogger("global") does not work in my setup (as well as Logger.getLogger(Logger.GLOBAL_LOGGER_NAME)).

However Logger.getLogger("") does the job well.

Hope this info also helps somebody...