zoukankan      html  css  js  c++  java
  • Log4j配置与使用

      log4j是Java社区事实上的日志标准解决方案。使用起来比较简单。

    一. 简单使用

      1.下载jar包放到lib文件夹,并加入到build path中;

      2.编写log4j.properties文件,放到classpath目录下;

    ### set log levels ###
    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 =  %d{ABSOLUTE} %5p %c{1}:%L - %m%n
    
    ### 输出到日志文件 ###
    log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.D.File = logs/log_
    log4j.appender.D.DatePattern = yyyy-MM-dd'.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
    
    ### 保存异常信息到单独文件 ###
    log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.E.File = logs/error_ 
    log4j.appender.D.DatePattern = yyyy-MM-dd'.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.使用

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

      logger.debug("");

      logger.error("", e);

    说明:在Java项目和Java web项目下是类似的,唯一的区别在于日志文件的位置:

      1.在Java项目中,配置的日志文件路径是当前项目在workspace下得相对路径(如上述文件的配置)

      2.可以在Java代码中制定配置文件的位置

        InputStream input = Thread.CurrentThread.getClass().getClassLoader()
                                    .getResourceAsStream("log4j.properties");
        PropertyConfigurator.configure(input);
        Logger logger = Logger.getLogger(Thread.CurrentThread.getClass());
        logger.debug("load log4j property file");
    

    二. Java web项目中配置日志文件的位置的方法

    1.如上述配置文件内容,无法找到日志文件

    2.绝对路径

    log4j.appender.D.File = D:apache-tomcat/webapps/TestLog/logs/log_1.log

    3.使用已有JVM变量

    log4j.appender.D.File = ${user.home}/logs/log_1.log

    4.配置监听器

    a.创建监听器

    package com.log.listener;
    
    public class Log4jListener implements ServletContextListener {
    
        public static final String LOG4J_DIR_KEY = "log4jDir";
    
        public void contextDestroyed(ServletContextEvent event) {
              System.getProperties().remove(LOG4J_DIR_KEY);
        }
    
        public void contextInitialized(ServletContextEvent event) {
            String log4jDir = event.getServletContext().getRealPath("/");
            System.setProperties(LOG4J_DIR_KEY, log4jDir);
        }
    }
    

     b.配置web.xml

    <listener>
        <listener-class>com.log.listener.Log4jListener</listener-class>
    </listener>

    c.log4j.properties配置

    log4j.appender.D.File = ${log4jDir}/logs/log_1.log

    5.使用Spring提供的监听器(未验证)

    <context-param>  
        <param-name>webAppRootKey</param-name>  <!--Spring配置变量名,不可变 -->
        <param-value>webApp.root</param-value>      
      </context-param>  
     <context-param>  
      <param-name>log4jConfigLocation</param-name>  
        <param-value>classpath:log4j.properties</param-value>  
     </context-param>  
    <listener>    
         <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>    
     </listener>  
    <!-- log文件存放于tomcat_home/webapps/project_name/WEB-INF/logs/ -->
    

     三.log4j.properties文件配置

       待记录

  • 相关阅读:
    课后作业
    动手动脑
    原码,补码,反码
    CodingSouls团队项目冲刺-个人概况(7)
    《人月神话》阅读笔记03
    数据库学习
    家庭小账本——数据库的编写与测试
    家庭小账本——适配器的编写与测试
    UI高级组件
    UI高级组件
  • 原文地址:https://www.cnblogs.com/techroad4ca/p/5107885.html
Copyright © 2011-2022 走看看