posts - 0,  comments - 0,  trackbacks - 0
           

            1.導入包

            2.WEB-INF目錄下添加一個配置文件log4j.properties

            log4j.rootLogger=DEBUG,A1,A2

            # 輸出到控制臺

            log4j.appender.A1=org.apache.log4j.ConsoleAppender

            log4j.appender.A1.layout=org.apache.log4j.PatternLayout

            log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} ["u4fe1"u606f] %m%n

            # 輸出到日志文件

            log4j.appender.A2=org.apache.log4j.FileAppender

            log4j.appender.A2.File=${catalina.home}/webapps/test_log4j/logging.log

            log4j.appender.A2.Append=true

            log4j.appender.A2.layout=org.apache.log4j.PatternLayout

            log4j.appender.A2.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} ["u4fe1"u606f] %m%n

            3.JSP中應用Log4j

            <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>

            <%@ page import="org.apache.log4j.*" %>

            <html>

             <head>

                <title>Test Log4j</title>

             </head>

             <body>

               Test Log4j <br>

               <hr>

               <%

               //載入配置文件

                       PropertyConfigurator.configure(request.getRealPath("WEB-INF/log4j.properties"));

               //取得日志記錄器

               Logger logger = Logger.getLogger(this.getClass());

                       logger.fatal("這是一條從index.jsp產生的fatal信息!");

            logger.error("這是一條從index.jsp產生的error信息!");

            logger.warn("這是一條從index.jsp產生的warn信息!");

            logger.debug("這是一條從index.jsp產生的debug信息!");

            logger.info("這是一條從index.jsp產生的info信息!");

               %>

             </body>

            </html>

            -----------------------

            Log4jServlet中的應用

            package com.yzk.servlet;

            import java.io.IOException;

            import java.io.PrintWriter;

            import javax.servlet.ServletException;

            import javax.servlet.http.HttpServlet;

            import javax.servlet.http.HttpServletRequest;

            import javax.servlet.http.HttpServletResponse;

            import org.apache.log4j.*;

            public class TestLog4j extends HttpServlet {

            Logger logger = null;

            public void doGet(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

            response.setContentType("text/html");

            response.setCharacterEncoding("GB18030");

                       logger.fatal("這是一條從 TestLog4j 產生的fatal信息!");

            logger.error("這是一條從 TestLog4j 產生的error信息!");

            logger.warn("這是一條從 TestLog4j 產生的warn信息!");

            logger.debug("這是一條從 TestLog4j 產生的debug信息!");

            logger.info("這是一條從 TestLog4j 產生的info信息!");

            }

            public void doPost(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

            this.doGet(request, response);

            }

            public void init() throws ServletException {

            PropertyConfigurator.configure(this.getServletContext().getRealPath("WEB-INF/log4j.properties"));

            logger = Logger.getLogger(this.getClass());

            }

            }

            WEB.XML中的配置

             <servlet>

                <servlet-name>TestLog4j</servlet-name>

                <servlet-class>com.yzk.servlet.TestLog4j</servlet-class>

             </servlet>

             <servlet-mapping>

                <servlet-name>TestLog4j</servlet-name>

                <url-pattern>/servlet/TestLog4j</url-pattern>

             </servlet-mapping>

            ---------------------------------------

            修改成在Tomcat啟動時自啟動日志

            新建一個Servlet來專門做初始化的工作

            import java.io.IOException;

            import java.io.PrintWriter;

            import javax.servlet.ServletException;

            import javax.servlet.http.HttpServlet;

            import javax.servlet.http.HttpServletRequest;

            import javax.servlet.http.HttpServletResponse;

            import org.apache.log4j.*;

            public class InitLog4j extends HttpServlet {

            public void destroy() {

            super.destroy(); // Just puts "destroy" string in log

            }

            public void doGet(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

            }

            public void init() throws ServletException {

            String basePath = getServletContext().getRealPath("/");

            String confFile = getInitParameter("log4j");

            if (confFile!=null){

            PropertyConfigurator.configure(basePath+confFile);

            }else{

            System.out.println("指定的Log4j配置文件不存在,將影響應用中的日志記錄輸出!");

            }

            }

            }

            web.xml中的修改配置

             <servlet>

                <servlet-name>TestServlet</servlet-name>

                <servlet-class>TestServlet</servlet-class>

             </servlet>

             <servlet>

                <servlet-name>InitLog4j</servlet-name>

                <servlet-class>InitLog4j</servlet-class>

                <init-param>

                        <param-name>log4j</param-name>

                        <param-value>WEB-INF/log4j.properties</param-value>

                </init-param>

                <load-on-startup>1</load-on-startup>

             </servlet>

             <servlet-mapping>

                <servlet-name>TestServlet</servlet-name>

                <url-pattern>/TestServlet</url-pattern>

             </servlet-mapping>

             <servlet-mapping>

                <servlet-name>InitLog4j</servlet-name>

                <url-pattern>/InitLog4j</url-pattern>

             </servlet-mapping>

            package com.yzk.servlet;

            import java.io.IOException;

            import java.io.PrintWriter;

            import javax.servlet.ServletException;

            import javax.servlet.http.HttpServlet;

            import javax.servlet.http.HttpServletRequest;

            import javax.servlet.http.HttpServletResponse;

            import org.apache.log4j.*;

            public class TestLog4j extends HttpServlet {

            Logger logger = null;

            public void doGet(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

            response.setContentType("text/html");

            response.setCharacterEncoding("GB18030");

                       logger.fatal("這是一條從 TestLog4j 產生的fatal信息!");

            logger.error("這是一條從 TestLog4j 產生的error信息!");

            logger.warn("這是一條從 TestLog4j 產生的warn信息!");

            logger.debug("這是一條從 TestLog4j 產生的debug信息!");

            logger.info("這是一條從 TestLog4j 產生的info信息!");

            }

            public void doPost(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

            this.doGet(request, response);

            }

            public void init() throws ServletException {

            //PropertyConfigurator.configure(this.getServletContext().getRealPath("WEB-INF/log4j.properties"));

            logger = Logger.getLogger(this.getClass());

            }

            }

          posted on 2008-12-28 13:09 游上岸的魚 閱讀(198) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          留言簿

          文章檔案

          搜索

          •  

          最新評論

          主站蜘蛛池模板: 荥经县| 洪泽县| 江安县| 夏邑县| 肇州县| 沙雅县| 于都县| 宾川县| 右玉县| 夏邑县| 津市市| 靖西县| 潞西市| 商洛市| 金川县| 普安县| 内江市| 江油市| 西峡县| 鹰潭市| 临沭县| 太湖县| 玉龙| 兴义市| 惠安县| 尼勒克县| 资源县| 宁海县| 柞水县| 繁昌县| 岑巩县| 舒兰市| 改则县| 乌拉特后旗| 西宁市| 宁蒗| 辽中县| 浏阳市| 林芝县| 延长县| 西贡区|