• log4j简单使用java web项目--后台打印以及输出到文件


    1,导入log4j-1.2.15.jar 

    2,在src下面新建log4j.properties

    其内容为

    ### 设置###
    log4j.rootLogger = debug,stdout,D,E
    
    ### 输出信息到控制抬 ###
    log4j.appender.stdout = org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target = System.out
    log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
    
    ### 输出DEBUG 级别以上的日志到=E://logger_data/error.log ###
    log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.D.File = E://logger_data/log.log
    log4j.appender.D.Append = true
    log4j.appender.D.Threshold = DEBUG
    log4j.appender.D.layout = org.apache.log4j.PatternLayout
    log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
    
    ### 输出ERROR 级别以上的日志到=E://logger_data/error.log ###
    log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.E.File =E://logger_data/error.log
    log4j.appender.E.Append = true
    log4j.appender.E.Threshold = ERROR
    log4j.appender.E.layout = org.apache.log4j.PatternLayout
    log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

    3,添加servlet 容器加载时初始化

    package com.mucfc;
    import java.io.File;
    import java.io.IOException;
    
    import javax.servlet.ServletConfig;
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.apache.log4j.BasicConfigurator;
    import org.apache.log4j.PropertyConfigurator;
    
    @WebServlet("/Log4JInitServlet")
    public class Log4JInitServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
    
        public Log4JInitServlet() {
            super();
        }
    
        public void init(ServletConfig config) throws ServletException {
            System.out.println("Log4JInitServlet 正在初始化 log4j日志设置信息");
            String log4jLocation = config.getInitParameter("log4j-properties-location");
    
            ServletContext sc = config.getServletContext();
    
            if (log4jLocation == null) {
                System.err.println("*** 没有 log4j-properties-location 初始化的文件, 所以使用 BasicConfigurator初始化");
                BasicConfigurator.configure();
            } else {
                String webAppPath = sc.getRealPath("/");
                String log4jProp = webAppPath + log4jLocation;
                File yoMamaYesThisSaysYoMama = new File(log4jProp);
                if (yoMamaYesThisSaysYoMama.exists()) {
                    System.out.println("使用: " + log4jProp+"初始化日志设置信息");
                    PropertyConfigurator.configure(log4jProp);
                } else {
                    System.err.println("*** " + log4jProp + " 文件没有找到, 所以使用 BasicConfigurator初始化");
                    BasicConfigurator.configure();
                }
            }
            super.init(config);
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        }
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        }
    
    }

    4,添加servlet 测试类

    package com.mucfc;
    import java.io.IOException;
    
    import javax.servlet.ServletConfig;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.apache.log4j.Logger;
    
    @WebServlet("/Log4JTestServlet")
    public class Log4JTestServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
        private static Logger logger = Logger.getLogger(Log4JTestServlet.class);
    
        public Log4JTestServlet() {
            super();
        }
    
        public void init(ServletConfig config) throws ServletException {
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // 记录debug级别的信息
            logger.debug("This is debug message.");
            // 记录info级别的信息
            logger.info("This is info message.");
            // 记录error级别的信息
            logger.error("This is error message.");
        }
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request,response);
        }
    
    }

    5,修改web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://java.sun.com/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
              http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
             version="3.0">
        <display-name>log4j</display-name>
    
        <!--用来启动 log4jConfigLocation的servlet -->
        <servlet>
            <servlet-name>Log4JInitServlet</servlet-name>
            <servlet-class>com.mucfc.Log4JInitServlet</servlet-class>
            <init-param>
                <param-name>log4j-properties-location</param-name>
                <param-value>/WEB-INF/classes/log4j.properties</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
    
    
        <servlet-mapping>
            <servlet-name>Log4JTestServlet</servlet-name>
            <url-pattern>/test</url-pattern>
        </servlet-mapping>
    
        <servlet>
            <servlet-name>Log4JTestServlet</servlet-name>
            <servlet-class>com.mucfc.Log4JTestServlet</servlet-class>
        </servlet>
    </web-app>

    6,tomcat跑起来后访问

    http://localhost:8089/test

    后台输出

     磁盘上面生成的日志文件

  • 相关阅读:
    BZOJ1511: [POI2006]OKR-Periods of Words
    BZOJ1009: [HNOI2008]GT考试
    BZOJ1355: [Baltic2009]Radio Transmission
    BZOJ1415: [Noi2005]聪聪和可可
    BZOJ1004: [HNOI2008]Cards
    UVA11077 Find the Permutations
    LA3641 Leonardo's Notebook
    UVA10294 Arif in Dhaka
    UVA11762 Race to 1
    UVA11427 Expect the Expected
  • 原文地址:https://www.cnblogs.com/rdchen/p/13573416.html
Copyright © 2020-2023  润新知