zoukankan      html  css  js  c++  java
  • Log4J输出日志到WEB工程目录的实现方法

    将Log4j的日志输出的web工程目录会方便系统移植、日志远程查看。那么如何来实现呢?可以通过一个自定义的Servlet设置系统属性的方法来实现,只需要几句代码,而且可配置、移植方便。 
    一、Servlet代码 

    package com.wallimn.gyz.util;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    /**
     * 设置一些系统变量<br/>*/
    public class SystemServlet extends HttpServlet {
    
        private static final long serialVersionUID = 8164865597169685698L;
        /**
         * 读配置,设置系统变量
         */
        public void init() throws ServletException {
            String rootPath = this.getServletContext().getRealPath("/");
            String log4jPath = this.getServletConfig().getInitParameter("elson.log4j.path");
            //若没有指定elson.log4j.path初始参数,则使用WEB的工程目录
            log4jPath = (log4jPath==null||"".equals(log4jPath))?rootPath:log4jPath;
            System.setProperty("elson.log4j.path", log4jPath);
            super.init();
        }
    }

     

     

    二、web.xml文件配置 
    <servlet> 
    <servlet-name>SystemServlet</servlet-name> 
    <servlet-class>com.elson.util.SystemServlet</servlet-class> 
    <init-param> 
    <param-name>elson.log4j.path</param-name> 
    <!--引自若未指定,则使用工程目录,若指定,使用指定目录--> 
    <param-value></param-value> 
    </init-param> 
    <load-on-startup>0</load-on-startup> 
    </servlet> 

    三、log4j.properties文件配置(输出到工程目录下的logs子目录中) 
    log4j.appender.FILEOUT = org.apache.log4j.DailyRollingFileAppender 
    log4j.appender.FILEOUT.File = ${elson.log4j.path}logs/log.html 
    log4j.appender.FILEOUT.Append = true 
    log4j.appender.FILEOUT.Threshold = DEBUG 
    log4j.appender.FILEOUT.layout = org.apache.log4j.HTMLLayout

     

    注意:上面的 load-on-startup 设为 0 ,以便在 Web 容器启动时即装入该 Servlet 。log4j.properties 文件放在根的properties子目录中,也可以把它放在其它目录中。应该把 .properties 文件集中存放,这样方便管理。

  • 相关阅读:
    Android App Bundle 使用指南
    Homebrew国内源
    Mac下配置环境变量不生效问题
    CocosCreator1.x配置打包Android App Bundle
    Android读取Json文件的工具类
    Cocos Creator 坐标转换
    XCode真机调试不了,提示"Please reconnect the device"
    Canvas: trying to draw too large(134374464bytes) bitmap.
    Modbus主从关系几点记录
    当前时间加上几天
  • 原文地址:https://www.cnblogs.com/elson/p/2753245.html
Copyright © 2011-2022 走看看