当前位置: 首页 > 编程笔记 >

基于web项目log日志指定输出文件位置配置方法

赵雪峰
2023-03-14
本文向大家介绍基于web项目log日志指定输出文件位置配置方法,包括了基于web项目log日志指定输出文件位置配置方法的使用技巧和注意事项,需要的朋友参考一下

首先我们定义一个可以在运行时动态的找出项目的路径WebAppRootKey,这么做的原因是为了在后面配置log4j输出文件路径的时候能随心配置。

<context-param>
   <param-name>webAppRootKey</param-name>
   <param-value>amt.root</param-value>
</context-param>

然后要定义项目log配置文件的路径以及log4j监听器

<context-param> 
  <param-name>log4jConfigLocation</param-name> 
  <param-value>classpath:conf/log4j.xml</param-value> 
</context-param> 
 <!--定义LOG4J监听器--> 
<listener>
 <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 
</listener> 

这样web.xml文件的配置完毕,然后就是log配置文件的具体配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration>
 <!-- 将日志信息输出到控制台 -->
 <appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender">
  <!-- 设置日志输出的样式 -->
  <layout class="org.apache.log4j.PatternLayout">
   <!-- 设置日志输出的格式 -->
   <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5p] [method:%l]%n%m%n%n" />
  </layout>
  <!--过滤器设置输出的级别-->
  <filter class="org.apache.log4j.varia.LevelRangeFilter">
   <!-- 设置日志输出的最小级别 -->
   <param name="levelMin" value="INFO" />
   <!-- 设置日志输出的最大级别 -->
   <param name="levelMax" value="ERROR" />
   <!-- 设置日志输出的xxx,默认是false -->
   <param name="AcceptOnMatch" value="true" />
  </filter>
 </appender>
 <!-- 将日志信息输出到文件,可以配置多久产生一个新的日志信息文件 -->
 <appender name="rollingFile" class="org.apache.log4j.DailyRollingFileAppender">
  <!-- 设置日志信息输出文件全路径名 -->
  <param name="File" value="${amt.root}/logs/spdbData.log" />
  <!-- 设置日志每小时回滚一次,即产生一个新的日志文件 -->
  <param name="DatePattern" value="'_'yyyy-MM-dd-HH'.log'" />
  <!-- 设置日志输出的样式 -->
  <layout class="org.apache.log4j.PatternLayout">
   <!-- 设置日志输出的格式 -->
   <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5p] [method:%l]%n%m%n%n" />
  </layout>
 </appender>
 <!--
  注意:
  1:当additivity="false"时,root中的配置就失灵了,不遵循缺省的继承机制
  2:logger中的name非常重要,它代表记录器的包的形式,有一定的包含关系,试验表明
  2-1:当定义的logger的name同名时,只有最后的那一个才能正确的打印日志
  2-2:当对应的logger含有包含关系时,比如:name=test.log4j.test8 和 name=test.log4j.test8.UseLog4j,则2-1的情况是一样的
  2-3:logger的name表示所有的包含在此名的所有记录器都遵循同样的配置,name的值中的包含关系是指记录器的名称哟!注意啦!
  3:logger中定义的level和appender中的filter定义的level的区间取交集
  4:如果appender中的filter定义的 levelMin > levelMax ,则打印不出日志信息
  -->
 <!--指定logger的设置,additivity指示是否遵循缺省的继承机制 -->
 <logger name="test.log4j.test8.UseLog4j_" additivity="false">
  <level value ="ERROR"/>
  <appender-ref ref="rollingFile"/>
 </logger>
 <!-- 根logger的设置-->
 <root>
  <level value ="info"/>
  <appender-ref ref="ConsoleAppender"/>
  <appender-ref ref="rollingFile"/>
 </root>
</log4j:configuration>

项目结构如下:

一切准备就绪之后,项目一旦启动你就能在你规定的输出位置找到你每天或者每个小时的日志文件,log配置文件还可以进行拓展配置每个文件的大小以及文件出错时的回滚事宜,这里不做赘述。

以上这篇基于web项目log日志指定输出文件位置配置方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 我试图在springboot中配置log4j2。我已经从pom.xml.中删除(排除)了登录依赖项,我正在名为log4j2.xml的资源文件夹下使用此xml 这是我的控制器类。 我在这里错过了什么吗?我尝试使用application.properties也使用最新版本的Log4j2.But仍然没有created.When我运行应用程序,我看不到任何日志文件在xml中指定的路径上动态创建。

  • 主要内容:默认配置,修改默认日志配置,自定义日志配置通过上节的学习,我们了解了 Spring  Boot 日志框架的选用及统一,本节我们将重点介绍 Spring Boot 日志的配置及输出。 默认配置 Spring Boot 默认使用 SLF4J+Logback 记录日志,并提供了默认配置,即使我们不进行任何额外配,也可以使用 SLF4J+Logback 进行日志输出。 常见的日志配置包括日志级别、日志的输入出格式等内容。 日志级别 日志的输出都是

  • 我的android项目只有aidl文件,项目结构如下: 我正在用maven构建我的android项目。我的pom使用dexguard maven插件,它是android maven插件的扩展。 在插件配置中,我明确指定了源aidl文件的目录 但在运行mvn clean install-e之后,我得到了以下错误跟踪: 怎么了?

  • 本文向大家介绍springboot+log4j.yml配置日志文件的方法,包括了springboot+log4j.yml配置日志文件的方法的使用技巧和注意事项,需要的朋友参考一下 一,Maven 依赖 pom.xml配置 1, 去掉默认日志,以便切换到log4j2的日志依赖 2, 然后添加如下两个日志依赖 二,在工程根目录下添加 lo4g2.yml 配置文件 2, 配置文件内容 三,在工程根目录下