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 lo
Old question but to help other developers:
You can also just use logger.setUseParentHandlers(false)
on your logger.
Remove all handlers (using Logger.getHandlers() and calling Logger.removeHandler() for each handler) from the root logger before adding your file handler.
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.
I use:
Logger logger = Logger.getLogger("MyLog");
Logger parentLog= logger.getParent();
if (parentLog!=null&&parentLog.getHandlers().length>0) parentLog.removeHandler(parentLog.getHandlers()[0]);
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