在前边的基础上,本文主要总结一下如何在spring 中配置log4j,在本文末尾会给出完整项目的链接。

首先是web.xml中要新添加的代码:

  1. <!-- 6. 配置log4j -->
  2. <!--6.1 配置加载log4j.xml文件路径 -->
  3. <context-param>
  4. <param-name>log4jConfigLocation</param-name>
  5. <param-value>/WEB-INF/classes/spring/log4jConfig.xml</param-value>
  6. </context-param>
  7.  
  8. <!-- 6.2 配置log4j.xml变量 -->
  9. <context-param>
  10. <param-name>rootLevel</param-name>
  11. <param-value>DEBUG</param-value>
  12. </context-param>
  13.  
  14. <context-param>
  15. <param-name>loggingLevel</param-name>
  16. <param-value>INFO</param-value>
  17. </context-param>
  18.  
  19. <!-- 6.3 配置log4j.xml监听器 -->
  20. <listener>
  21. <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
  22. </listener>

然后在src/config/spring文件夹下添加log4jConfig.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "WEB-INF/classes/spring/log4j.dtd">
  3. <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
  4.  
  5. <!-- 该配置文件共定义了4个appender,即log日志的四个输出位置,关于appender详见 注4-->
  6.  
  7. <!-- [控制台]
  8. -->
  9. <appender name="console" class="org.apache.log4j.ConsoleAppender"> <!-- ConsoleAppender即表示日志输出方式为控制台 -->
  10. <param name="encoding" value="UTF-8" />
  11. <param name="target" value="System.out" /> <!-- log日志的输出位置为系统输出,一般就是控制台 -->
  12. <!-- 关于layout中的参数详见 注5 -->
  13. <layout class="org.apache.log4j.PatternLayout">
  14. <param name="ConversionPattern" value="%-5p %c{2} - %m%n" />
  15. </layout>
  16. </appender>
  17.  
  18. <!-- [公共Appender] -->
  19. <appender name="DEFAULT-APPENDER" class="org.apache.log4j.DailyRollingFileAppender"> <!-- DailyRollingFileAppender即输出方式为每天产生一个日志文件 -->
  20. <param name="File" value="../logs/common-default.log" /> <!-- 日志文件输出路径-->
  21. <param name="Append" value="true" /> <!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->
  22. <param name="encoding" value="UTF-8" />
  23. <param name="DatePattern" value="'.'yyyy-MM-dd'.log'" /> <!-- 每天的日志的名字,如:common-default.2015-02-06.log -->
  24. <layout class="org.apache.log4j.PatternLayout">
  25. <param name="ConversionPattern" value="%d %-5p %c{2} - %m%n" />
  26. </layout>
  27. </appender>
  28.  
  29. <!-- [错误日志 专用于收集特殊错误的文件] -->
  30. <appender name="ERROR-APPENDER" class="org.apache.log4j.DailyRollingFileAppender">
  31. <param name="File" value="../logs/common-error.log" />
  32. <param name="Append" value="true" />
  33. <param name="encoding" value="UTF-8" />
  34. <param name="threshold" value="error" /> <!-- 日志输出级别为error,详见 注6 -->
  35. <param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />
  36. <layout class="org.apache.log4j.PatternLayout">
  37. <param name="ConversionPattern" value="%d %-5p %c{2} - %m%n" />
  38. </layout>
  39. </appender>
  40.  
  41. <!-- [组件日志APPENDER] -->
  42. <appender name="COMPONENT-APPENDER"
  43. class="org.apache.log4j.DailyRollingFileAppender">
  44. <param name="File" value="../logs/logistics-component.log" />
  45. <param name="Append" value="true" />
  46. <param name="encoding" value="utf-8" />
  47. <param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />
  48. <layout class="org.apache.log4j.PatternLayout">
  49. <param name="ConversionPattern" value="%d %-5p %c{2} - %m%n" />
  50. </layout>
  51. </appender>
  52.  
  53. <!-- 用于定义logger的lever和所采用的appender,其中appender-ref必须为先前定义的 appenders的名称。
  54. 那么log就会以appender所定义的输出格式来输出log。 -->
  55. <logger name="LOGISTICS-COMPONENT">
  56. <level value="${loggingLevel}" />
  57. <appender-ref ref="COMPONENT-APPENDER" />
  58. <appender-ref ref="ERROR-APPENDER" />
  59. </logger>
  60.  
  61. <!-- Root Logger -->
  62. <!-- 1.root的作用是收集下面所有反馈上来的信息流并根据配置在root中appender进行输出,
  63. 只要你在looger中配置了additivity="false",就不会反馈到root中。
  64. 2.root标签为log的默认输出形式,如果一个类的log没有在loggers中明确指定其输出lever与格式,那么就会采用root中定义的格式-->
  65. <root>
  66. <level value="${rootLevel}"></level>
  67. <appender-ref ref="DEFAULT-APPENDER" />
  68. <appender-ref ref="ERROR-APPENDER" />
  69. </root>
  70. </log4j:configuration>

接下来在将log4jjar包log4j-1.2.17\org\apache\log4j\xml下的log4j.dtd复制到src/config/spring下。

当然,人需要导入相应的包。

完整项目见:http://download.csdn.net/detail/u012116457/8431651

版权声明:本文为博主原创文章,未经博主允许不得转载。

玩转Spring MVC(五)----在spring中整合log4j的更多相关文章

  1. spring MVC框架入门(外加SSM整合)

    spring MVC框架 一.什么是sping MVC Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 W ...

  2. Spring3 + Spring MVC+ Mybatis 3+Mysql 项目整合(注解及源码)

    Spring3 + Spring MVC+ Mybatis 3+Mysql 项目整合(注解及源码) 备注: 之前在Spring3 + Spring MVC+ Mybatis 3+Mysql 项目整合中 ...

  3. spring mvc注解和spring boot注解

    1 spring mvc和spring boot之间的关系 spring boot包含spring mvc.所以,spring mvc的注解在spring boot总都是可以用的吗? spring b ...

  4. java之spring mvc之初始spring mvc

    1. mvc : mvc框架是处理 http请求和响应的框架 2. mvc 做的事情有哪些: 将 url 映射到一个java的处理方法上 将表单数据提交到 java 类中 将后台 java 类处理的结 ...

  5. 玩转spring mvc(四)---在spring MVC中整合JPA

    关于在Spring MVC中整合JPA是在我的上一篇关于spring mvc基本配置基础上进行的,所以大家先参考一下我的上一篇文章:http://blog.csdn.net/u012116457/ar ...

  6. 展开被 SpringBoot 玩的日子 《 五 》 spring data jpa 的使用

    在上篇文章< 展开被 SpringBoot 玩的日子 < 二 >WEB >中简单介绍了一下spring data jpa的基础性使用,这篇文章将更加全面的介绍spring da ...

  7. Spring MVC如何获取请求中的参数

    目录 一.获取URL中路径参数 1.1 @PathVariable 注解 1.2 @PathParam 注解 二.获取请求参数: 2.1 GET请求 2.1.1 获取请求中的单个参数:@Request ...

  8. Spring MVC(五)--控制器通过注解@RequestParam接受参数

    上一篇中提到,当前后端命名规则不一致时,需要通过注解@RequestParam接受参数,这个注解是作用在参数上.下面通过实例说明,场景如下: 在页面输入两个参数,控制器通过注解接受,并将接受到的数据渲 ...

  9. mybatis 3.2.7 与 spring mvc 3.x、logback整合

    github上有一个Mybatis-Spring的项目,专门用于辅助完成mybatis与spring的整合,大大简化了整合难度,使用步骤: 准备工作: maven依赖项: <properties ...

随机推荐

  1. 速度之王 — LZ4压缩算法(一)

    LZ4 (Extremely Fast Compression algorithm) 项目:http://code.google.com/p/lz4/ 作者:Yann Collet 本文作者:zhan ...

  2. IOS中用到的缓存

    App已经与我们形影不离了,不管在地铁上.公交上还是在会场你总能看到很多人拿出来手机,刷一刷微博,看看新闻. 据不完全统计有近一半的用户在非Wifi环境打开App,以下为一个典型iPhone和Andr ...

  3. python标准库之MultiProcessing库的研究 (1)

    MultiProcessing模块是一个优秀的类似多线程MultiThreading模块处理并发的包之前接触过一点这个库,但是并没有深入研究,这次闲着无聊就研究了一下,算是解惑吧.今天先研究下appl ...

  4. 修改访问的后缀contant

    设置Struts 2处理的请求后缀及Action调用 1.在struts2中默认处理的请求后缀为action,我们可以修改struts.xml 和struts.properties来修改默认的配置,在 ...

  5. 三种Tomcat集群方式的优缺点分析

    三种Tomcat集群方式的优缺点分析 2009-09-01 10:00 kit_lo kit_lo的博客 字号:T | T 本文对三种Tomcat集群方式的优缺点进行了分析.三种集群方式分别是:使用D ...

  6. SQL解决时间段重复合并问题

    合并时间段: 将连续或者重叠的时间段合并. create table timesheets ( task_id char(10) not null primary key, startdate dat ...

  7. 动态规划 Common Subsequence

    描述 A subsequence of a given sequence is the given sequence with some elements (possible none) left o ...

  8. complex figure

    1/z   ----direct by MATLAB exp(z)    by QT logZ       by  QT 1/z      用QT画的 -----2018-03-17--------- ...

  9. datetime的精度

    最近有需要将分钟线的数据进行内联拼接,但时间没有必要精确到秒,微秒. df['datetime'] = pd.to_datetime(df['datetime']) df = df.set_index ...

  10. Golang 交叉编译 window/linux 文件

    gox - 一款简单的交叉编译工具 下载地址:https://github.com/mitchellh/gox 使用 go get 命令安装: go get github.com/mitchellh/ ...