14

I have quite a simple problem but can't find a solution for it. I have a logger with a file handler added, but it still spams the hell out of my console. How could I get the logger to solely route all output to a file, with NO console outputs?

2
  • 1
    The exclamation mark makes this question seem really exciting. Commented May 28, 2009 at 12:56
  • 1
    which logging framework? Commented Jun 14, 2010 at 19:10

5 Answers 5

22

Old question but to help other developers:

You can also just use logger.setUseParentHandlers(false) on your logger.

Sign up to request clarification or add additional context in comments.

2 Comments

Much easier than any other answers.
This is the most up-to-date, simple and effective answer.
8

The simplest way to guarantee that nothing will be written to the console is to put:

java.util.logging.ConsoleHandler.level = NONE

in your logging configuration file.

Comments

5

Remove all handlers (using Logger.getHandlers() and calling Logger.removeHandler() for each handler) from the root logger before adding your file handler.

2 Comments

Logger.getHandlers() returns 0 handler in my case
When I add FileHandler, the handlers size goes to 1
1

Use log4j with

import org.apache.log4j.Logger;

Logger logger = Logger.getLogger("com.whatever");
PropertyConfigurator.configure("file-log4j.properties");

and set your display levels in file-log4j.properties:

# Root logger option
log4j.rootLogger=INFO, file

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=index-service.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.appender.file.Append=false

Comments

0

I use:

Logger logger = Logger.getLogger("MyLog");
    Logger parentLog= logger.getParent();
    if (parentLog!=null&&parentLog.getHandlers().length>0) parentLog.removeHandler(parentLog.getHandlers()[0]);

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.