2014-02-14 65 views
0

我想在我的Struts2應用程序中詢問有關log4j用法的信息。我在我的struts2應用程序中使用log4j。這裏是我的log4j.xml使用log4j在struts2應用程序中記錄應用程序的開始和結束

<appender name="APPLICATION" class="org.apache.log4j.DailyRollingFileAppender"> 
    <param name="file" value="${appRootPath}/application_"/> 
    <param name="DatePattern" value="yyyy-MM-dd'.log'"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c %m%n"/> 
    </layout> 
</appender> 

<appender name="JUNIT" class="org.apache.log4j.FileAppender"> 
     <param name="file" value="application.log"/> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c %m%n"/> 
     </layout> 
</appender> 

<logger name="co.jkk.tds"> 
     <level value="DEBUG"/> 
     <appender-ref ref="JUNIT"/> 
     <appender-ref ref="APPLICATION"/> 
</logger> 

我使用的ServletContextListener來配置此log4j的XML我application.This是我的監聽器類,

 public class Log4jInit implements ServletContextListener { 

    @Override 
    public void contextDestroyed(ServletContextEvent arg0) { 

     CommonUtil.methodInfoLog(this.getClass(), "contextDestroyed", 
         MethodAction.Start); 
     CommonUtil.methodInfoLog(this.getClass(), "contextDestroyed", 
         MethodAction.Finish); 
    } 

    @Override 
    public void contextInitialized(ServletContextEvent e) { 
     ServletContext ctx = e.getServletContext(); 
     System.setProperty("appRootPath", ctx.getRealPath("/logs")); 
     String prefix = ctx.getRealPath("/"); 
     String file = "WEB-INF" + File.separator + "classes" + File.separator 
         + "log4j.xml"; 
     DOMConfigurator.configure(prefix + file); 

    } 
} 

我的問題是我如何添加應用程序啓動和在我的Struts2應用程序中結束日誌消息?我正在使用Tomcat7和Struts2。

回答

0

它與struts2無關。在上下文監聽器中初始化log4j的方式看起來是正確的。確保您已配置web.xml以通過將<listener>元素添加到web.xml來調用您的上下文偵聽器。

<listener> 
    <listener-class>your.package.Log4jInit</listener-class> <!-- Use fully qualified name of y our Log4jInit class. --> 
</listener> 

之後,您可以使用log4j記錄器記錄事件,如上下文開始和結束。

請注意 - 我還沒有分析您的log4j appenders和記錄器配置。