SpringBoot学习-SLF4j日志

1.目前市面上的日志框架与选择

日志门面 (日志的抽象层)选择/不选择理由日志实现选择/不选择理由
JUL(Jakarta Commons Logging)最后一次更新在2014年Log4j性能问题 ,不如Logback
SLF4j(Simple Logging Facade for Java)选择JUL(java.util.logging)java自带的
jboss-logging需要特定的框架Log4j2适配性强但是目前还不通用
-LogbackLog4j的升级版,选择

通常是左边选择一个门面(抽象层)、右边选择一个实现。
SpringBoot:底层是Spring框架,Spring默认使用JCL;
SpringBoot选用SLF4j和Logback。

2.SLF4j使用原理

日志记录方法的调用,不应该直接调用日志的实现类,而应该调用日志的抽象层里的方法;
给系统里倒入slf4j的jar和logback的实现jar
SLF4j用户手册

//slf4j简单实现
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class HelloWorld {
  public static void main(String[] args) {
    Logger logger = LoggerFactory.getLogger(HelloWorld.class);
    logger.info("Hello World");
  }
}

SLF4j通用日志实现原理:Alt
对于其他日志框架SLF4j也可以兼容,通过使用适配层[adaptation layer]上边实现了SLF4j的接口,但是需要实现方法的时候通过适配层来调用其他框架的方法。每个日志都有自己的配置文件,使用SLF4j后,配置文件还是使用日志实现框架本身的配置文件

3.其他日志框架的遗留问题

工作场景中经常使用到别的框架,所以统一日志记录,也就是所谓的别的框架和我一起使用slf4j进行输出,方法如下图:
Alt
例如本来我框架中使用了Commons logging API的框架,但是现在需要使用SLF4J API统一输出。
1.需要排除掉Commons logging的jar包
2.然后倒入jcl-over-slf4j.jar包(中间包)
3.导入slf4j的其他实现

而Commons logging包中的方法jcl-over-slf4j都有,这样项目中使用的时候就不会报错了。

4.日志使用

4.1 SpirngBoot默认配置

SpringBoot默认配置了日志

//记录器
Logger logger = LoggerFactory.getLogger(XXXX.class);
//日志的级别 由低到高 trace<debug<info<warn<error
//轨迹信息
logger.trace("");
//调试信息
logger.debug("");
//自定义信息
logger.info("");
//警告信息
logger.warn("");
//错误信息
logger.error("");

日志的级别 由低到高 trace<debug<info<warn<error
SpringBoot默认是使用info级别的,我们也可以调整日志的输出级别,在application.properties中设置

//所要设置打印日志的包名 例如ywz
//只打印debug之下的日志
logging.level.com.ywz=debug 

日志打印输出成log文件

//设置日志打印输出文件,如果不设置则只打印在控制台输出
logging.file=srpingboot.log
//设置输出的地址默认是在当前项目下输出
logging.file=D:/srpingboot.log

日志打印输出地址(注意:如果在logging.file中设置了文件输出地址,则logging.path无效

//spring中设置日志输出地址
//在当前磁盘的根路径下创建spring文件夹和里面的log文件夹,spring.log为默认文件
logging.path=/srpingboot/logs

5.定义自己的Log配置文件

给类路径下放上每个日志框架自己的配置文件,spring则不会使用默认的配置。例如使用Logback日志框架,则在类路径中放一个logback-spring.xml/logback.xml文件。

Logging SystemCustomization
Logbacklogback-spirng.xml(推荐,带上扩展名可以使用spring高级功能),logback-spring.groovy,logback.xml,OR Logback.grovvy
Log4j2log4j2-spring.xml OR log4j2.xml
JDK(Java Util Logging)logging.properties

logback.xml:直接被日志框架识别
logback-spring.xml:日志框架不直接识别加载日志的配置项,由SpringBoot

<spirngProfile name="dev">
//可以指定某段配置只在某个环境下生效
</springProfile>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值