Monday, July 20, 2009

How to create log files in webapplication relative path?

Step 1.

create a Class servletcontextlistner.

public class MyServletContextListner implements ServletContextListener {

public void contextInitialized(ServletContextEvent event) {
ServletContext context = event.getServletContext();
System.setProperty("rootPath", context.getRealPath("/"));
}

public void contextDestroyed(ServletContextEvent arg0) {
// TODO Auto-generated method stub

}


Step 2:

Register your listner class in web.xml

<listener >
<listener-class>foo.com.MyServletContextListner</listener-class>
</listener>



Step 3.

Add log file paht in your log4j.properties or log4j.xml files

<appender name="MY_LOG_FILE" class="org.apache.log4j.RollingFileAppender">e.g.

<param name="File" value="${rootPath}WEB-INF/logs/mylog.log"> appender name="ROLLING_FILE1" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="${rootPath}WEB-INF/logs/logtest.log">
<param name="Append" value="true">
<param name="MaxFileSize" value="500KB">
<param name="MaxBackupIndex" value="5">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%d{ISO8601}] %-5p %m%n">
</layout>
</appender>
<param name="Append" value="true">
<param name="MaxFileSize" value="500KB">
<layout class="org.apache.log4j.PatternLayout"></layout></appender>

Step 4.

load log4j.properties/log4j.xml file.


ServletContext context = config.getServletContext();
URL url = Loader.getResource("log4j properties/xml path");
DOMConfigurator.configure(url);


Regards
Santosh

No comments:

Post a Comment