springMVC中整合log4j,让日志输出到控制台,并按日期记录到指定web目录

来源:互联网 发布:怎么删除ubuntu系统 编辑:程序博客网 时间:2024/05/01 06:10

根据web的启动顺序做如下配置

一、 web.xml中:

<!--配置log4j -->
   <context-param>
      <param-name>log4jConfigLocation</param-name>
      <param-value>/WEB-INF/props/log4j.properties</param-value>
   </context-param>
   
   <context-param>
      <param-name>log4jRefreshInterval</param-name>
      <param-value>6000</param-value>
   </context-param>


   <listener>
      <listener-class>
        com.aicheche.init.Log4jConfigListenerExt
      </listener-class>
   </listener> 


1、log4jConfigLocation 为log4j.properties文件的路径

2、log4jRefreshInterval 为检查配置文件变化的周期(不需要重新启动web服务)

注:请将上面的配置部分放到

web.xml中的

 <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

之前,否则会出现警告


二、配置log4j.properties文件

//定义日志级别及两个输出器,具体的配置项可百度查看其意义

log4j.rootLogger=info,ServerDailyRollingFile,stdout
log4j.appender.ServerDailyRollingFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ServerDailyRollingFile.DatePattern='.'yyyy-MM-dd

//这里将日志的存储路径以${log4j_path}的形式动态传入

log4j.appender.ServerDailyRollingFile.File=${log4j_path}/logs/aicheche.log
log4j.appender.ServerDailyRollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.ServerDailyRollingFile.layout.ConversionPattern=%d - %m%n
log4j.appender.ServerDailyRollingFile.Append=true
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p [%c] %m%n


三、继承监听、传入日志记录的目录

public class Log4jConfigListenerExt extends Log4jConfigListener {
    @Override
    public void contextInitialized(ServletContextEvent event) {

        //设置日志记录的路径,对应于log4j.properties中的$(log4j_path)
        System.setProperty("log4j_path",event.getServletContext().getRealPath("/"));
        super.contextInitialized(event);
    }   
}






0 0
原创粉丝点击