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

所属分类: 软件编程 / java 阅读数: 31
收藏 0 赞 0 分享

首先我们定义一个可以在运行时动态的找出项目的路径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日志指定输出文件位置配置方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

java实现背单词程序

这篇文章主要为大家详细介绍了java实现背单词程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

java实现单词查询小程序

这篇文章主要为大家详细介绍了java实现单词查询小程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Java程序开发环境配置图文教程

这篇文章主要为大家详细介绍了Java程序开发环境配置图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

详解ssh框架原理及流程

在本文中小编给大家整理的是关于ssh框架原理及流程的相关知识点内容,有此需要的朋友们可以学习下。
收藏 0 赞 0 分享

Java实现弹窗效果的基本操作

这篇文章主要为大家详细介绍了Java实现弹窗效果的基本操作,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

详解springmvc常用5种注解

在本篇里我们给大家总结了关于springmvc常用5种注解相关知识点以及实例代码,需要的朋友们参考下。
收藏 0 赞 0 分享

Java实现弹窗效果的基本操作(2)

这篇文章主要为大家详细介绍了Java实现弹窗效果的基本操作第二篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Spring Boot假死诊断实战记录

这篇文章主要给大家介绍了关于Spring Boot假死诊断的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring Boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

Java计时新姿势StopWatch详解

这篇文章主要介绍了Java计时新姿势StopWatch,最近公司来了个大佬,从他那里学到不少东西,其中一个就是计时的新姿势「StopWatch」,需要的朋友可以参考下
收藏 0 赞 0 分享

java实现点击按钮弹出新窗体功能

这篇文章主要为大家详细介绍了java实现点击按钮弹出新窗体功能,旧窗体不进行操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享
查看更多