• 【一文秒懂——SLF4j日志】


    目录

    1. SLF4j日志

    2. 日志输出


    1. SLF4j日志

    在添加了spring-boot-starter的项目中,已经包含了SLF4j日志的相关依赖项。

    在添加了lombok的项目中,可以在类上添加@Slf4j注解,则lombok框架会在编译期在类中声明名为log的变量,通过此变量可以调用输出日志的方法。

    在SLF4j中,日志的可显示级别,根据日志内容从不重要(或可不关注)到重要(或必须关注)依次为:

    • trace:跟踪信息
    • debug:调试信息
    • info:一般信息
    • warn:警告信息
    • error:错误信息

    2. 日志输出

    通过log变量,可以调用以上5个级别名称对应的方法,以输出对应级别的日志,例如:

    1. @Test
    2. void test() {
    3. log.trace("输出了一条【trace】日志");
    4. log.debug("输出了一条【debug】日志");
    5. log.info("输出了一条【info】日志");
    6. log.warn("输出了一条【warn】日志");
    7. log.error("输出了一条【error】日志");
    8. }

     

    在Spring Boot项目中,默认的日志显示级别为info,所以,在默认情况下,只会显示info或更加重要的日志!

    在Spring Boot项目中,在配置文件中,可以通过在配置文件中的 logging.level.根包名[.类名]=显示级别 来配置显示级别!例如,在application.properties中添加配置:

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

    输出日志的各级别的方法都是被重载过的,通常,当输出日志时需要输出相关的变量值时,推荐使用参数列表为 (String msg, Object... args) 的方法,例如:

    1. int x = 1;
    2. int y = 2;
    3. System.out.println("x = " + x + ", y = " + y + ", x + y = " + (x + y));
    4. log.trace("x = {}, y = {}, x + y = {}", x, y, x + y);

    以上做法中,是在需要输出的字符串中使用{}作为占位符,表示某个变量的值,然后,从第2个参数开始,依次传入各占位符对应的值。

    使用这种做法,可以避免字符串的拼接,无论是编写代码,还是阅读代码,体验都会更好!并且,使用这种做法时,由于第1个参数(字符串)是常量,是不变的,不存在字符串的拼接,所以,执行效率也远高于传统的输出语句!

    需要注意,在测试类中,测试类必须添加@SpringBootTest注解,才会识别application.properties中的配置,并且,如果没有添加此注解,日志的默认显示级别是debug

    个人主页:居然天上楼

    感谢你这么可爱帅气还这么热爱学习~~

    人生海海,山山而川

    你的点赞👍 收藏⭐ 留言📝 加关注✅

    是对我最大的支持与鞭策

  • 相关阅读:
    nginx多端口多server_name监听同时支持https和http
    计算机网络的形成与发展
    thinkphp中使用Elasticsearch 7.0进行多表的搜索
    【翻译】Fast Patch-based Style Transfer of Arbitrary Style
    Vue 之 Toast 消息提示插件的简单封装
    数据库系列:大厂使用数据库中间件解决什么问题?
    3.11-程序基本的控制语句 3.12-表达式 3.13-数据类型 3.14-常量/变量 3.15-标识符
    Verilog零基础入门(边看边练与测试仿真)-时序逻辑-笔记(4-6讲)
    vim 窗口管理
    UVA 107 The Cat in the Hat
  • 原文地址:https://blog.csdn.net/weixin_72612071/article/details/128087701