【每日记录之使用SLF4J日志】

目录

一、通过注解@SLF4j使用

日志方法的重载

关于Perfile个性化配置文件

二、通过导包

日志的两种方式,以及个性化配置文件

一、通过注解@SLF4j使用

        在Spring Boot项目中,spring-boot-starter依赖项中已经包含日志框架!

        在Spring Boot项目中,当添加了Lombok依赖项后,可以在任何类上添加@SLF4j注解,则Lombok会在编译期声明一个名为log的日志对象变量,此变量可以调用相关方法来输出日志!

package com.example.product;

import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@Slf4j
@SpringBootTest
public class Slf4jTests {

    @Test
    void testLog() {
        log.info("输出了一条日志……");
    }

}

SLF4j的日志的可显示级别,根据信息的重要程度,从不重要到严重依次是:

  • trace
  • debug
  • info:一般信息
  • warn:警告信息
  • error:错误信息

调用log变量来输出日志时,可以使用以上级别对应的方法,则可以输出对应级别的日志!

在Spring Boot项目中,日志的默认显示级别是info,则默认情况下只会显示info及更加严重的级别的日志!如果需要修改日志的显示级别,需要在application.properties中配置logging.level的属性,例如:

# 日志的显示级别
logging.level.cn.tedu.csmall=info

        注意:在配置以上属性时,必须在logging.level右侧加上要配置显示级别的包的名称,此包名就是配置日志显示级别的根包。

日志方法的重载

void trace(String var1);

void trace(String var1, Object... var2);

其它级别的日志也有完全相同参数列表的方法。

        以上的第2个方法适用于在输出的日志中添加变量的值,在第1个字符串参数中,各变量均使用{}表示,通过第2个参数依次传入各变量对应的值即可:

int x = 1;
int y = 2;
log.trace("{}+{}={}", x, y, x + y);

        使用以上方式输出时,会将字符串部分进行缓存(是一种预编译的做法),在执行时,并不会出现拼接字符串的情况,所以,在执行效率方面,比传统的System.out.println()的要高很多!

关于Perfile个性化配置文件

        在不同的工作环境中,需要配置不同级别的日志,来控制不同的日志输出 , 修改不同的数据库连接来执行项目, 如果在application.properties中反复修改大量配置值,是非常不方便的!

        日志,在开发环境中,日志的显示级别可以是trace这种较低级别的,而在测试环境、生产环境(项目部署上线并运行)中可能需要改为info / debug,

        数据库,连接数据库配置的相关参数,在不同环境中,可能使用不同的值……

   Spring框架支持Profile配置(个性化配置)    :支持使用application-xxx.properties作为配置文件的名称,其中,xxx部分是完全自定义的名称

如: 开发时的配置文件:application-dev.properties

# 连接数据库的配置
spring.datasource.url=jdbc:mysql://localhost:3306/person_dv?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root

# 日志的显示级别
logging.level.cn.tedu.csmall=trace

    生产环境下的配置文件:application-prod.properties

# 连接数据库的配置
spring.datasource.url=jdbc:mysql://192.168.1.255:3306/big_small?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
spring.datasource.username=prod
spring.datasource.password=s3ctet@tedu.cn

# 日志的显示级别
logging.level.cn.tedu.csmall=info

以上这些不在application.properties中的配置,默认是不生效的!需要application.properties中显式的激活后,才会生效!例如:

# 激活Profile配置
spring.profiles.active=prod

二、通过导包

        在需要日志输出的类中创建日志对象 logger private static Logger logger = LoggerFactory.getLogger(LoggerTests.class);

  • 其中 使用static好处是方便在静态方法调用
  • Logger和LoggerFactory 来自org.slf4j包
  • 方法参数是当前的类名,用于设置Logger的层级,方便分组管理,分组打开和关闭
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Person(){
    Logger logger = LoggerFactory.getLogger(Person.class);

    logger.info("这是一条通过导包的日志");
}

 此方式的日志的使用的与@SLF4J注解方式使用一致! ! !

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hemuer~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值