我正在使用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,但是当异常到来时,日志消息必须生成,它没有生成任何日志消息,这个代码中有什么错误。请有人指导我。
答案 0 :(得分:0)
Log4j页面说明你应该将log4j-web模块添加到你的部署中 - https://logging.apache.org/log4j/2.x/manual/webapp.html 此页面还包含您可能需要的其他一些有用信息。