我们正在开始一个基于Spring MVC的Web应用程序。我们将使用tomcat作为Web服务器。
我需要在应用程序中配置log4j并登录到应用程序特定文件而不是tomcat日志文件。
e.g。 tomcat有自己的日志文件,如localhost.log等。我想在tomcats日志文件夹中找到类似myAppName.log的东西。
日志记录配置将放在应用程序war文件中的lo4j.xml或log4j.properties中。
另外,我不想在Web应用程序中对输出日志文件进行硬编码。
但我不知道该怎么做。
请帮帮我。如果我错了,请纠正我。
答案 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