我想使用 log4j 来登录我的 Tomcat webapp。我有一个数据访问类,它应该在请求用户信息等时记录活动。我已经向我的 rootlogger 添加了一个文件处理程序和一个控制台处理程序,并且我完全能够在控制台中看到正确的日志消息,但是不幸的是不在指定的文件中。
我的代码如下:
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-root 中,正如这里的一些人所建议的那样。