一、入门介绍

log4j

apache实现的一个开源的日志组件

slf4j

日志接口即为所有日志框架制定的一种规范的标准接口,并不是一个框架的具体实现,需要配合具体的日志框架使用(如log4j2、logback)

logback

由log4j作者设计的基于slf4j实现的用于取代log4j的一个新的日志框架

 

  而我们即将介绍的log4j2则是基于logback和log4j1.x的改进版,采用了无锁异步等技术使日志的吞吐量和性能较log4j 1.x提升将近10倍,并且在配置方面更为灵活。

 

二、使用示例

 

1、引入maven依赖

 

 

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.weidai.work.zm</groupId>
    <artifactId>log4j2-learn</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <junit.version>3.8.1</junit.version>
        <log4j.version>2.5</log4j.version>
    </properties>
<!-- 使用aliyun镜像 -->
    <repositories>
        <repository>
            <id>aliyun</id>
            <name>aliyun</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>${log4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>${log4j.version}</version>
        </dependency>
    </dependencies>
</project>

 

 

2、测试代码

 

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

/**
 * @author : zhangyanqing
 * @time : 2017/12/9
 * @desc : log4j2测试
 */
public class LoggerTest {
    public static final Logger LOGGER = LogManager.getLogger(LoggerTest.class);
    public static void main(String[] args){
        LOGGER.trace("trace level");
        LOGGER.debug("debug level");
        LOGGER.info("info level");
        LOGGER.warn("warn level");
        LOGGER.error("error level");
        LOGGER.fatal("fatal level");

    }

}

 

执行结果截图

 

 

 

对执行结果进行分析可知在没有配置文件的情况下log4j2默认的日志输出级别为error只输出error和fatal级别的日志