在Web应用程序中使用log4j的最佳方法是什么?

时间:2012-02-15 07:11:30

标签: java tomcat web-applications log4j

我们正在开始一个基于Spring MVC的Web应用程序。我们将使用tomcat作为Web服务器。

我需要在应用程序中配置log4j并登录到应用程序特定文件而不是tomcat日志文件。

e.g。 tomcat有自己的日志文件,如localhost.log等。我想在tomcats日志文件夹中找到类似myAppName.log的东西。

日志记录配置将放在应用程序war文件中的lo4j.xml或log4j.properties中。

另外,我不想在Web应用程序中对输出日志文件进行硬编码。

但我不知道该怎么做。

请帮帮我。如果我错了,请纠正我。

2 个答案:

答案 0 :(得分:1)

这样做,使用以下代码初始化记录器,

Logger log = Logger.getLogger(this.getClass());

记录如下信息,

log.debug("My message");

并将log4j.xml放在类路径中。内容如下,

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
     <appender name="infoLogsFile" class="org.apache.log4j.RollingFileAppender">
         <param name="File" value="MyApplication.log"/>     
         <param name="Threshold" value="DEBUG"/>
         <param name="MaxFileSize" value="100MB"/>
         <param name="ImmediateFlush" value="TRUE"/>
         <layout class="org.apache.log4j.PatternLayout">
           <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
         </layout>
    </appender>
   <root> 
      <priority value ="DEBUG" /> 
      <appender-ref ref="infoLogsFile"/>
   </root>
</log4j:configuration>

不要忘记添加所需的jar,如log4jXXX.jars和apache常见的日志记录罐。通过这个,您将能够看到MyApplication.log文件中的所有日志消息都在tomcat的bin文件夹中创建。

答案 1 :(得分:1)

试试这个:

  • 将log4j jar作为Web应用程序的一部分

  • 不要将配置作为Web应用程序的一部分

  • 随时随地创建log4j.xml

  • 当你启动tomcat时提供这个参数   -Dlog4j.configuration =文件:///.../log4j.xml