【发布时间】:2014-11-09 21:32:58
【问题描述】:
我正在使用 index.jsp,我正在编写代码来生成日志文件,一切正常,但即使出现异常,日志消息也没有生成。这是我的代码。
<body>
<%
Logger logger = Logger.getLogger("index");
String prefix = getServletContext().getRealPath("/");
String file = getServletConfig().getInitParameter("log4j-init-file");
System.setProperty("appRootPath", prefix);
//out.println(file);
// if the log4j-init-file context parameter is not set, then no point in trying
if (file != null) {
PropertyConfigurator.configure(prefix + file);
out.println("Log4J Logging started: " + prefix + file);
int i = 10, j = 0;
try {
int k = i / j;
out.println(k);
} catch (Exception ex) {
logger.error("Exception", ex);
}
// logger.error("This is a warning message" + file);
} else {
out.println("Log4J Is not configured for your Application: " + prefix + file);
}
%>
</body>
这是我的 web.xml 文件
<servlet>
<servlet-name>index</servlet-name>
<jsp-file>/index.jsp</jsp-file>
<init-param>
<param-name>log4j-init-file</param-name>
<param-value>WEB-INF/log4j.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>index</servlet-name>
<url-pattern>/index.jsp</url-pattern>
</servlet-mapping>
这是我的属性文件
log4j.logger.Logging=DEBUG, C, fileappender
log4j.additivity.Logging=true
log4j.appender.C=org.apache.log4j.ConsoleAppender
log4j.appender.C.layout=org.apache.log4j.PatternLayout
log4j.appender.C.layout.ConversionPattern=[%c] [%d{dd MMM yyyy - hh:mm:ss}] %5p - %m %n
log4j.appender.fileappender=org.apache.log4j.RollingFileAppender
log4j.appender.fileappender.file=${appRootPath}WEB-INF/logs/Logging.log
log4j.appender.fileappender.MaxFileSize=500KB
log4j.appender.fileappender.MaxBackupIndex=3
log4j.appender.fileappender.layout=org.apache.log4j.PatternLayout
log4j.appender.fileappender.layout.ConversionPattern=%p %t %c - %m%n
在这里,我给出了正在生成的路径 MyApp.log,但是当必须生成异常来日志消息时,它不会生成任何日志消息,这段代码有什么问题。请有人指导我。
【问题讨论】:
标签: java jsp logging log4j properties-file