美文网首页
Log4j2日志框架集成Slf4j日志门面

Log4j2日志框架集成Slf4j日志门面

作者: 木木与呆呆 | 来源:发表于2020-12-08 11:23 被阅读0次

1.说明

本文介绍使用日志门面Slf4j打印日志,
底层日志实现使用Log4j2框架,
方便以后切换底层日志实现,
Log4j2可以替换成Logback等。

2.依赖管理

在pom.xml依赖管理中导入slf4j-api和log4j-bom:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.25</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-bom</artifactId>
            <version>2.12.1</version>
            <scope>import</scope>
            <type>pom</type>
        </dependency>
    </dependencies>
</dependencyManagement>

3.依赖引入

在pom.xml依赖中引入相关的jar包:

<dependencies>
    <!-- slf4j+log4j2 日志框架 start -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
    </dependency>
    <!-- slf4j+log4j2 日志框架 end -->
</dependencies>

4.日志配置

在src/main/resource下面增加log4j2.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level [%l] - %msg%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <Root level="DEBUG">
      <AppenderRef ref="Console"/>
    </Root>
  </Loggers>
</Configuration>

说明一下,
虽然使用了日志门面,
但是配置文件还是和底层日志实现相关的,
这里Log4j2使用log4j2.xml配置文件,
包括文件内容的格式,
都要符合Log4j2规范,
更多说明请参考Log4j2完整XML参考(详细注释说明)

5.记录日志

在记录日志的时候,
使用Slf4j提供的日志工厂和日志类即可。

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class UserController {
    private Logger logger = LoggerFactory.getLogger(getClass());

    public List<User> getUsersAll() {
        logger.debug("UserController.getUsersAll() start");
    }
}

其中通过日志工厂获取日志类的时候,
还有以下写法,
注意在不同的类中使用时记得修改名称:

private Logger logger = LoggerFactory.getLogger(UserController.class);

6.输出日志

可以看到如下日志:

2020-07-02 15:57:11.723 [http-nio-8088-exec-1] DEBUG [24] - UserController.getUsersAll() start

7.参考文章

SpringBoot集成Log4j2框架

相关文章

  • Log4j2日志框架集成Slf4j日志门面

    1.说明 本文介绍使用日志门面Slf4j打印日志,底层日志实现使用Log4j2框架,方便以后切换底层日志实现,Lo...

  • 主流日志框架

    一、日志门面 1.1 简单日志门面SLF4J SLF4J,即简单日志门面(Simple Logging Facad...

  • spring boot学习与实践练习2

    SpringBoot和日志 SpringBoot选用的日志框架是日志抽象层(门面)选用SLF4J,日志实现选用是l...

  • Java日志系统的总结

    日志系统归类以及关系 常用的日志框架: slf4j、logback 、log4j、log4j2、JUL(java ...

  • java 注解结合 spring aop 实现日志traceId

    MDC 的必要性 日志框架 日志框架成熟的也比较多: slf4j log4j logback log4j2 我们没...

  • 日志

    1.常见的日志框架以及选择日志门面:JCL(springboot不用这个)、SLF4J、jboss-logging...

  • 日志技术-日志门面

    零、本文纲要 一、日志门面二、JCL三、SLF4J四、Logback五、log4j2 tips:Ctrl + F快...

  • Log4J/Logback

    slf4j是一系列的日志接口,而log4j logback是具体实现了的日志框架。slf4j译为简单日志门面(Th...

  • logback日志配置

    实现了门面日志@slf4j,其配置大同小异,logback、log4j2基本差不太多,以下看springboot默...

  • 8.7 Spring Boot集成日志

    8.7 Spring Boot集成日志 SLF4J与Logback简介 Java日志框架众多,常用的有java.u...

网友评论

      本文标题:Log4j2日志框架集成Slf4j日志门面

      本文链接:https://www.haomeiwen.com/subject/jayfgktx.html