log4j 和 log4j2 的使用详解

​log4j简述

Log4j 是Apache的一个Java的日志库,通过使用Log4j,我们可以控制日志信息输送的目的地(控制台、文件、数据库等);我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。

Log4j2简述

Apache Log4j 2是对 Log4j的升级,它比其前身Log4j 1.x提供了重大改进,并提供了Logback中可用的许多改进,同时修复了Logback架构中的一些问题。
现在最优秀的Java日志框架是Log4j2,没有之一。根据官方的测试表明,在多线程环境下,Log4j2的异步日志表现更加优秀。在异步日志中,Log4j2使用独立的线程去执行I/O操作,可以极大地提升应用程序的性能

日志级别

一般日志级别包括:ALL,DEBUG, INFO, WARN, ERROR,FATAL,OFF

Log4J推荐使用:DEBUG, INFO,WARN, ERROR,FATAL 

输出级别的种类:

  1. OFF  
    1. 最高等级的,用于关闭所有日志记录(包括自定义的级别)。
  2. FATAL   
    1. 指出严重的错误事件将会导致应用程序的退出。(Logback无)。
  3. RRORE   
    1. 表明出现了系统错误和异常,无法正常完成目标操作。(调用API的方法时有异常抛出,而且异常无法处理并影响业务功能时使用)
  4. WARN   
    1. 表明会出现潜在错误的情形。(某个不常走到的分支,对于常规的操作是不应该打印WARN日志的,只有在满足某个条件才能走到的分支,且这个分支引起了“警觉”,此时就应该打印WARN日志。)
  5. INFO   
    1. 在粗粒度级别上突出强调应用程序的运行过程。打印一些重要的信息,这个能够用于生产环境中输出程序运行的一些重要信息。(程序入口相关参数、计算结果)
  6. DEBUG
    1. 指出细粒度信息事件,对调试应用程序是非常有帮助的,主要用于开发过程当中打印一些运行信息。
  7. TRACE
    1. 用于展现程序执行的轨迹,如函数间的相互调用关系,函数的参数和返回值等现场信息。很低的日志级别,通常不会使用。
  8. ALL
    1. 最低等级的,用于打开所有日志记录(包括自定义的级别)。

log4j 和 log4j2 日志的使用

1,在log4j中,Logger对象是通过LogManager类的静态getLogger方法创建的。例如:

import org.apache.log4j.Logger;
import org.junit.Test;

public class test {
    @Test
    public void test2(){
        Logger logger = Logger.getLogger(test.class);

        //按照输出级别输出日志
        //调试日志
        logger2.debug("Debug");
        //信息日志
        logger.info("info");
        //警告日志
        logger.warn("warn");
        //错误日志
        logger.error("error");
        //严重错误日志
        logger.fatal("fatal");
    }
}

运行结果如下:

2,在log4j2中,同样可以使用类似的方式创建Logger对象,但为了支持异步日志记录,推荐使用LogManager类的静态getLogger方法,并将LoggerConfig参数传递给它:

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.junit.Test;

public class Demo2 {

    protected static final Logger logger = LogManager.getLogger(Main.class);

    @Test
    public void a(){
        logger.trace("trace message");
        logger.debug("debug message");
        logger.info("info message");
        logger.warn("warn message");
        logger.error("error message");
        logger.fatal("fatal message");
    }
}

运行结果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值