package myServlet;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.apache.log4j.*;
public class ContextLog implements ServletContextListener {
private Logger log=null;
public ContextLog(){};
public void contextDestroyed(ServletContextEvent arg0) {
// TODO Auto-generated method stub
String name=arg0.getServletContext().getServletContextName();
log.info("servletContext shut down"+(name==null?"":name));
}
public void contextInitialized(ServletContextEvent arg0) {
// TODO Auto-generated method stub
ServletContext context=arg0.getServletContext();
String realpath=context.getRealPath("/");
String fileSep=System.getProperty("file.separator");
if(realpath!=null&&(!realpath.endsWith(fileSep)))
{
realpath=realpath+fileSep;
}
PropertyConfigurator.configure(realpath+"/WEB-INF/classes/"+context.getInitParameter("logger-config"));
log=Logger.getLogger(ContextLog.class);
String name=context.getServletContextName();
log.info("servlet ready:"+(name==null?"":name));
}
}
web.xml
<listener>
<listener-class>myServlet.ContextLog</listener-class>
</listener>
<context-param>
<param-name>logger-config</param-name>
<param-value>servletlog.properties</param-value>
</context-param>
servletlog.properties
log4j.rootLogger=DEBUG, A1,A2
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A2=org.apache.log4j.FileAppender
log4j.appender.A2=org.apache.log4j.RollingFileAppender
log4j.appender.A2.File=e:/example1.log
log4j.appender.A2.MaxBackupIndex=1
log4j.appender.A2.MaxFileSize=1MB
log4j.appender.A1.layout=org.apache.log4j.SimpleLayout
log4j.appender.A2.layout=org.apache.log4j.SimpleLayout