我正在尝试设置 log4j 以在 Spring MVC webapp 中使用。stdout 日志记录工作正常,但 RollingFileAdapter 和 FileAdapter 都无法将我的日志打印到文件中。这是我的 log4j.properties 文件:
# Root logger option
log4j.rootLogger=INFO, file, stdout
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=~/logger.log
log4j.appender.file.MaxFileSize=100MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
在 web.xml 我定义了监听器:
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
和上下文参数:
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/classes/log4j.properties</param-value>
</context-param>
我正在使用 Maven 并使用以下方法定义依赖项:
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>
在我的控制器中,我使用实例化记录器
private static final Logger logger = Logger.getLogger(DeviceController.class);
并使用以下方法对其进行测试
//Implement required logging method
logger.debug("Debug..");
logger.info("Info..");
logger.error("Error..");
logger.fatal("Fatal");
logger.trace("trace");
我正在使用 Ubuntu 12.04 和 Spring MVC3。我已经为日志文件尝试了几个目录,并且每次都预先创建了路径。
我应该补充一点,我还收到以下无法解释的错误:
An error occurred while filtering resources PolicyManager line 1 Maven Configuration Problem
但它仍然可以编译并且标准输出日志有效。
有没有人对为什么没有创建和/或附加日志文件有任何建议?