Log4j 最简单内容

Log4j 最简单内容

1. 右击src目录,new->file,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://logs/error.log ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = E://logs/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://logs/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =E://logs/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

2. 代码中使用:

import org.apache.log4j.Logger;
import org.testng.annotations.Test;

public class FirstTest {
      private Logger log = Logger.getLogger(FirstTest.class);

  /**第一个测试方法,测试了很多log
   * 
   */   
  @Test
  public void f() {
      log.info("Log.info");
      log.debug("Log.debug");
  }
}

跑多次之后,新的log会叠加在原有的log中

默认log位置

log4j.appender.D.File = ../log/log.txt
生成的文件在workspace/log/log.txt
log4j.appender.D.File = log.txt
生成的文件在workspace/project/log.txt
log4j.appender.D.File = /log/log.txt
生成的文件在当前盘符根目录下D:/log/log.txt

子logger

在log4j.properties文件中新增:

log4j.logger.outonly=debug,outonlyconsole
log4j.additivity.outonly=false
### 输出信息到控制台 ###
log4j.appender.outonlyconsole = org.apache.log4j.ConsoleAppender
log4j.appender.outonlyconsole.Target = System.err
log4j.appender.outonlyconsole.layout = org.apache.log4j.PatternLayout
log4j.appender.outonlyconsole.layout.ConversionPattern = [%-5p] [Console Only]%d{HH:mm:ss} Method:%m%n

代码中:

    private Logger logConsole = Logger.getLogger("outonly");
    ...
    logConsole.debug("console========");

生成的log不输出到父级,可单独配置

代码中配置log4j

        //获取当前时间
        Date date=new Date();
        DateFormat format=new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
        String time=format.format(date);

        //配置Log4j
        PatternLayout p = new PatternLayout("%-4r[%t]%-5p%c%x - %m%n");
        FileAppender a = new FileAppender(p, "NewTest" + time);
        BasicConfigurator.configure(a);
        log.info("Log.info");
        log.debug("Log.debug");

每次运行生成一个以时间为文件名的log文件

20170108更新:存储位置,DatePattern和layout

### 输出DEBUG 级别以上的日志到项目文件夹/log/log.log文件中,前一天的日志保存为后缀名为“yyyy-mm-dd”格式的文件 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = ${user.dir}/logs/log.log
###DailyRollingFileAppender的默认格式,写和没写一样
log4j.appender.D.DatePattern='.'yyyy-MM-dd
###Append=ture,每次运行追加信息###
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}  [ %l ] - [ %p ]  %m%n

### 输出ERROR 级别以上的日志到项目文件夹/log/log.log,DatePattern和上一个相同 ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = ${user.dir}/logs/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}  [ %l ] - [ %p ]  %m%n

20170108更新:输出Exception到log

        catch (Exception e){            
            StringWriter sw = new StringWriter();//生成writer         
            e.printStackTrace(new PrintWriter(sw,true));//将错误信息写到writer         
            log.error(sw);//存入log
            throw e;
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值