Java Log4j元';t记录到文件,仅记录到控制台
我想使用log4j在我的Tomcat webapp上进行一些登录。我有一个数据访问类,该类应在请求用户信息等时记录活动。 我已经在我的rootlogger中添加了一个filehandler和一个consolehandler,我完全能够在控制台中看到正确的日志消息,但不幸的是,没有在指定的文件中看到 我的代码如下:Java Log4j元';t记录到文件,仅记录到控制台,java,tomcat,web-applications,logging,log4j,Java,Tomcat,Web Applications,Logging,Log4j,我想使用log4j在我的Tomcat webapp上进行一些登录。我有一个数据访问类,该类应在请求用户信息等时记录活动。 我已经在我的rootlogger中添加了一个filehandler和一个consolehandler,我完全能够在控制台中看到正确的日志消息,但不幸的是,没有在指定的文件中看到 我的代码如下: imports... public class UserDao { private final Logger logger = Logger.getRootLogger();
imports...
public class UserDao {
private final Logger logger = Logger.getRootLogger();
public UserDao() {
FileAppender fa = new FileAppender();
fa.setLayout(new PatternLayout("%d{yyyy-MM-dd HH:mm:ss.SSSS} %p %t %c \u2013 %m%n"));
fa.setName("UserDaoFileAppender");
fa.setFile("UserDao.log");
fa.setThreshold(Level.INFO);
fa.setAppend(true);
fa.activateOptions();
logger.addAppender(fa);
ConsoleAppender ca = new ConsoleAppender();
ca.setLayout(new PatternLayout("%d{yyyy-MM-dd HH:mm:ss.SSSS} %p %t %c \u2013 %m%n"));
ca.setThreshold(Level.WARN);
ca.activateOptions();
logger.addAppender(ca);
logger.warn("Test warning");
logger.error("Test error");
logger.info("Test info");
logger.debug("test debug");
}
// Rest of the class.
}
我曾尝试使用属性文件的方式设置appender配置,但始终无法使其正常工作。我试着把它放在WEB-INF/classes文件夹和src根目录中,正如一些人所建议的那样 您正在为FileAppender使用无参数构造函数。请使用至少有2个参数的构造函数
FileAppender fa = new FileAppender();
fa.setLayout(new PatternLayout("%d{yyyy-MM-dd HH:mm:ss.SSSS} %p %t %c \u2013 %m%n"));
将这两行替换为以下内容:
FileAppender fa = new FileAppender(new PatternLayout("%d{yyyy-MM-dd HH:mm:ss.SSSS} %p %t %c \u2013 %m%n"), "path of the log file");
我有工作样本(如果您对属性文件满意)。您需要将log4j.properties复制到WEB-INF文件夹中
log4j.rootLogger=INFO, stdout, logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=${billing.root}/WEB-INF/billing.log
log4j.appender.logfile.MaxFileSize=512KB
# Keep three backup files.
log4j.appender.logfile.MaxBackupIndex=3
# Pattern to output: date priority [category] - message
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
我不明白这有什么区别。编辑:没有。