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?
5 Answers
Old question but to help other developers:
You can also just use logger.setUseParentHandlers(false) on your logger.
2 Comments
Nate Glenn
Much easier than any other answers.
Nick Charney Kaye
This is the most up-to-date, simple and effective answer.
Remove all handlers (using Logger.getHandlers() and calling Logger.removeHandler() for each handler) from the root logger before adding your file handler.
2 Comments
Bob Yoplait
Logger.getHandlers() returns 0 handler in my case
Bob Yoplait
When I add FileHandler, the handlers size goes to 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