我的环境是struts2.1.6, 使用commons-logging-1.1.1.jar
我配置log4j的步骤如下:
- 将log4j-1.2.9.jar拷贝到WEB-INF/lib目录下
- 在WEB-INF/classes下建立log4j.properties文件,文件内容如下:
[code="java"]log4j.rootLogger=ERROR, errfile
log4j.appender.errfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.errfile.File=D:\bugu_err.log
log4j.appender.errfile.layout=org.apache.log4j.PatternLayout
log4j.appender.errfile.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n[/code]
-
java代码如下:
[code="java"]public class ExceptionLogInterceptor extends AbstractInterceptor
{
private final Log log = LogFactory.getLog(getClass());
static Logger logger = Logger.getLogger(ExceptionLogInterceptor.class.getName());public String intercept(ActionInvocation invocation) throws Exception
{
String result = "";
try {result = invocation.invoke(); } catch (Exception e) { System.out.print("exception log"); log.error("log4j:" + e.getMessage()); logger.error("test log4j 1.2.9"); } return result;
}
}[/code]
问题:运行程序之后并没有生成D:\bugu_err.log文件(控制台已打出"exception log"信息,即log.error("log4j:" + e.getMessage()) 和 logger.error("test log4j 1.2.9")有被执行到)
请教:应该如何正确配置log4j,以及代码里面应该如何正确调用log4j写log?谢谢!
[b]问题补充:[/b]
to lwx_1987:
怎样"在应用程序启动时对log4j进行初始化"?能否详细点?