在web配置log4j

    技术2022-05-11  86

    在WEB-INF/下建立config文件夹,创建log4j.xml的配置文件如下:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

    <log4j:configuration> <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">        <layout class="org.apache.log4j.PatternLayout">            <param name="ConversionPattern" value="%d %p [%c] - %m%n"/>        </layout>    </appender>

        <!-- 记录系统运行的跟踪日志 -->    <appender name="TRACE-LOGFILE" class="org.apache.log4j.DailyRollingFileAppender">        <param name="File" value="${catalina.base}/logs/WebTest_SHS/web.log"/>        <!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->        <param name="Append" value="true"/>        <layout class="org.apache.log4j.PatternLayout">            <param name="ConversionPattern" value="%d %p [%c] - %m%n"/>        </layout>    </appender>

        <!-- 记载Run系统的日志器, 除开数据访问层 -->    <logger name="com.dream">        <level value="DEBUG"/>        <appender-ref ref="TRACE-LOGFILE"/>    </logger>

        <!-- 全局日志记录器, 当系统被部署到用户端的时候请注释掉root项 -->    <root>        <priority value="info"/>        <appender-ref ref="CONSOLE"/>    </root></log4j:configuration>

    然后,编写一个servlet,/* *@author 田峰,创建日期 2007-2-1 * *Blog: http://agan1018.spaces.msn.com */package com.dream.log;

    import java.io.IOException;import java.io.PrintWriter;

    import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;

    import org.apache.log4j.xml.DOMConfigurator;

    public class Log4jInit extends HttpServlet {

     /**  * Constructor of the object.  */ public Log4jInit() {  super(); }

     /**  * Destruction of the servlet. <br>  */ public void destroy() {  super.destroy(); // Just puts "destroy" string in log  // Put your code here }

     /**  * The doGet method of the servlet. <br>  *  * This method is called when a form has its tag value method equals to get.  *   * @param request the request send by the client to the server  * @param response the response send by the server to the client  * @throws ServletException if an error occurred  * @throws IOException if an error occurred  */ public void doGet(HttpServletRequest request, HttpServletResponse response)   throws ServletException, IOException { }

     /**  * The doPost method of the servlet. <br>  *  * This method is called when a form has its tag value method equals to post.  *   * @param request the request send by the client to the server  * @param response the response send by the server to the client  * @throws ServletException if an error occurred  * @throws IOException if an error occurred  */ public void doPost(HttpServletRequest request, HttpServletResponse response)   throws ServletException, IOException {

     }

     /**  * Initialization of the servlet. <br>  *  * @throws ServletException if an error occure  */ public void init(ServletConfig config) throws ServletException {  // Put your code here  super.init(config);  String prefix = getServletContext().getRealPath("/");  String file = getInitParameter("log4jConfig");   System.out.println("--------  Log4J Start  --------- ");  if (file != null) {     DOMConfigurator.configure(prefix + file);  } }

    }   注意init方法,这里初始化了log4j.xml的配置。   然后在web.xml中配置servlet属性:   <!-- log4j configuration -->  <servlet>   <servlet-name>MyLogInit</servlet-name>   <servlet-class>com.dream.log.Log4jInit</servlet-class>   <init-param>    <param-name>log4jConfig</param-name>    <param-value>WEB-INF/config/log4j.xml</param-value>   </init-param>   <load-on-startup>1</load-on-startup>  </servlet>  在程序中需要使用log的地方,方法如下:  private static Logger logger  = Logger.getLogger(LoginAction.class);  logger.info();  logger.debug();  ......

      完! 


    最新回复(0)