Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在web应用程序中使用log4j的最佳方式是什么?_Java_Tomcat_Web Applications_Log4j - Fatal编程技术网

Java 在web应用程序中使用log4j的最佳方式是什么?

Java 在web应用程序中使用log4j的最佳方式是什么?,java,tomcat,web-applications,log4j,Java,Tomcat,Web Applications,Log4j,我们正在启动一个基于SpringMVC的web应用程序。我们将使用tomcat作为web服务器 我需要在应用程序中配置log4j,并记录到特定于应用程序的文件,而不是tomcat日志文件 e、 tomcat有自己的日志文件,如localhost.log等。我希望tomcat日志文件夹中有类似myAppName.log的文件 日志配置将放在应用程序war文件的lo4j.xml或log4j.properties中 另外,我不想在web应用程序中硬编码输出日志文件 但我不知道如何做到这一点 请帮帮我。

我们正在启动一个基于SpringMVC的web应用程序。我们将使用tomcat作为web服务器

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

e、 tomcat有自己的日志文件,如localhost.log等。我希望tomcat日志文件夹中有类似myAppName.log的文件

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

另外,我不想在web应用程序中硬编码输出日志文件

但我不知道如何做到这一点


请帮帮我。如果我在某个地方出错,请纠正我。

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

Logger log = Logger.getLogger(this.getClass());
记录如下信息:

log.debug("My message");
<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>
并将log4j.xml放在类路径中。内容如下:

log.debug("My message");
<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通用日志JAR。有了它,您将能够在tomcat的bin文件夹中创建的MyApplication.log文件中查看所有日志消息。

尝试以下操作:

  • 将log4jjar作为web应用程序的一部分

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

  • 随时随地创建log4j.xml

  • 启动tomcat时,请提供此参数 -Dlog4j.配置=file:///.../log4j.xml

您所说的“另外,我不想在web应用程序中硬编码输出日志文件”是什么意思?