码迷,mamicode.com
首页 > 其他好文 > 详细

Log4j配置与使用

时间:2016-01-12 01:04:33      阅读:291      评论:0      收藏:0      [点我收藏+]

标签:

  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 ## 输出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 ## 只输出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 extends 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>

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文件配置

   待记录

Log4j配置与使用

标签:

原文地址:http://www.cnblogs.com/techroad4ca/p/5107885.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!