简体   繁体   中英

Issue with log4j log not writing to file

Does anyone see why this log is not writing to file. It is writing to standard out twice but not to the file:

Also, I tried removing the "Stdout" appender and then I don't get any logging at all.

package org.berlin.wicket;
import org.apache.log4j.Logger;
private static final Logger LOG = Logger.getLogger(QuickstartPage.class);
LOG.info("Loading constructor");

log4j.rootLogger=DEBUG,Stdout,mainAppender

log4j.appender.Stdout=org.apache.log4j.ConsoleAppender log4j.appender.Stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.Stdout.layout.conversionPattern=%-5p - %-26.26c{1} - %m\\n

log4j.appender.mainAppender=org.apache.log4j.DailyRollingFileAppender

log4j.appender.mainAppender.file=logs/core.log

log4j.appender.mainAppender.datePattern='.'yyyy-MM-dd

log4j.appender.mainAppender.append=true

log4j.appender.mainAppender.layout=org.apache.log4j.PatternLayout

log4j.appender.mainAppender.layout.ConversionPattern=[%d{MM/dd/yyyy HH:mm:ss.SSS}] [%C{1}.%M():%L] [%t] [%p] - %m%n

log4j.logger.org.berlin=DEBUG,Stdout,mainAppender

You have two loggers which use the same appender (Stdout), hence why you see entries on the console twice.

As others have mentioned, the properties are case-sensitive, hence why your file appender is not configured correctly.

FileAppend属性区分大小写。

log4j.appender.mainAppender.File=someFileName.log log4j.appender.mainAppender.Append=true

You should create an instance of FileHandler that writes log to a file called myfile.log.

FileHandler fileHandler = new FileHandler("myfile.log", true);        
logger.addHandler(fileHandler);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM