关于SpringBoot 项目中使用Log4j2详细

Posted 战狂粗人张

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于SpringBoot 项目中使用Log4j2详细相关的知识,希望对你有一定的参考价值。

一.日志框架比较(slf4j、log4j、logback、log4j2 )

1.日志接口(slf4j)

slf4j是对所有日志框架制定的一种规范、标准、接口,并不是一个框架的具体的实现,因为接口并不能独立使用,

需要和具体的日志框架实现配合使用(如log4j、logback)日志实现(log4j、logback、log4j2)

2.log4j

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

logback同样是由log4j的作者设计完成的,拥有更好的特性,用来取代log4j的一个日志框架,是slf4j的原生实现。

3.Log4j2

是log4j 1.x和logback的改进版,据说采用了一些新技术(无锁异步、等等),使得日志的吞吐量、性能比log4j 1.x提高10倍,

并解决了一些死锁的bug,而且配置更加简单灵活,官网地址: http://logging.apache.org/log4j/2.x/manual/configuration.html

为什么需要日志接口,直接使用具体的实现不就行了吗?

接口用于定制规范,可以有多个实现,使用时是面向接口的(导入的包都是slf4j的包而不是具体某个日志框架中的包),

即直接和接口交互,不直接使用实现,所以可以任意的更换实现而不用更改代码中的日志相关代码。

比如:

slf4j定义了一套日志接口,项目中使用的日志框架是logback,开发中调用的所有接口都是slf4j的,不直接使用logback,

调用是 自己的工程调用slf4j的接口,slf4j的接口去调用logback的实现,可以看到整个过程应用程序并没有直接使用logback,

当项目需要更换更加优秀的日志框架时(如log4j2)只需要引入Log4j2的jar和Log4j2对应的配置文件即可,

完全不用更改Java代码中的日志相关的代码logger.info(“xxx”),也不用修改日志相关的类的导入的包(import org.slf4j.Logger;import org.slf4j.LoggerFactory;)

使用日志接口便于更换为其他日志框架。

log4j、logback、log4j2都是一种日志具体实现框架,所以既可以单独使用也可以结合slf4j一起搭配使用。

以上是关于关于SpringBoot 项目中使用Log4j2详细的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot-集成Log4j2

SpringBoot 项目中使用Log4j2

SpringBoot入门三,添加log4j2支持

如何springboot 默认的log4j2配置

SpringBoot2.0 基础案例(02):配置Log4j2,实现不同环境日志打印

SpringBoot2.0 基础案例(02):配置Log4j2,实现不同环境日志打印