• SpringBoot日志输出


    下面简单介绍下Springboot如何使用日志

    1. 添加依赖(可不加)

            #web容器
            <dependency>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-starter-webartifactId>
            dependency>
            #devtools小工具(我用于用于热部署)
            <dependency>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-devtoolsartifactId>
                <scope>runtimescope>
                <optional>trueoptional>
            dependency>
            #lombok(推荐)
            <dependency>
                <groupId>org.projectlombokgroupId>
                <artifactId>lombokartifactId>
                <optional>trueoptional>
            dependency>
    
            #测试(随意)
            <dependency>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-starter-testartifactId>
                <scope>testscope>
                <exclusions>
                    <exclusion>
                        <groupId>org.junit.vintagegroupId>
                        <artifactId>junit-vintage-engineartifactId>
                    exclusion>
                exclusions>
            dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    2、配置日志

    解释:说明一下日志文件的名字,存储地方,等级
    注意:请你把名字前的路径写全了,防止出错,细细看过文档可以不这么做(等级可以不写)

    server:
      port: 1314
    #设置日志级别
    logging:
      file:
        path: /Users/admin/Desktop/springboot/springboot03/src/main/java/com/sunjiahui/springboot03/log/
        name: /Users/admin/Desktop/springboot/springboot03/src/main/java/com/sunjiahui/springboot03/log/springboot03.log
      level:
        springboot.springboot03.src.main.java.com.sunjiahui.springboot03.log: error
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    3. 实现日志打印

    注意:导包不要错了
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;

    思路:
    创建日志对象就要先在日志工厂中得到它,映射对应当前类
    如何只需要改调用就能打印日志了

    package com.sunjiahui.springboot03.controller;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    /**
     * @Author 孙膑
     * @Date 2022/8/19
     */
    @RestController
    public class LoggerController {
        //1.得到日志对像
        private static Logger logger = LoggerFactory.getLogger(LoggerController.class);
    
        @RequestMapping("/logger01")
        public String logger01(){
            //2.使用日志打印
            logger.trace("trace");
            logger.debug("debug");
            logger.info("logger01:info");
            logger.warn("warn");
            logger.error("error");
            return "logger01:打印成功!";
        }
        /**
         * trace:微量,少许的意思,级别最低;
         * info:普通的打印信息;
         * debug:需要调试时候的关键信息打印;
         * warn:警告,不影响使⽤,但需要注意的问题;
         * error:错误信息,级别较⾼的错误⽇志信息;
         * fatal:致命的,因为代码异常导致程序退出执⾏的事件。
         */
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    4.lombok实现日志打印

    看过上面例子就懂了,创建对象很麻烦,因此依赖中应用lombok插件后就可以用@Slf4j代替创建对象可,实质是一样的。该注解写在需要打印日志的类上。

    package com.sunjiahui.springboot03.controller;
    
    import com.sunjiahui.springboot03.pojo.Student;
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.RestController;
    
    /**
     * @Author 孙膑
     * @Date 2022/8/19
     */
    @RestController
    @Slf4j
    /**
     * @Slf4j 等同于  private static Logger logger = LoggerFactory.getLogger(Logger02Controller.class); 可以看字节码发现
     */
    public class Logger02Controller {
    
        @RequestMapping("/logger02")
        public String logger02(@RequestParam(value = "name",defaultValue = "false") String name,
                               @RequestParam(value = "age",defaultValue = "false") Integer age){
            if(null == name || null == age){
                log.warn("[创建对象] 参数缺失 name={},age={}",age,name);
                return "参数缺失";
            }
            log.info("[创建对象] 设置属性 name={},age={}",name,age);
            Student stu1 = new Student(name,age);
            log.error("[创建对象] 装填数据 stu1={}",stu1);
            if(age<=18){
                log.warn("[创建对象] 未成年人警告:stu1={},警告年龄:age={} ",stu1,stu1.getAge());
            }
            return "logger02:打印成功!";
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    你仔细观察可以发现
    log.info("[创建对象] 设置属性 name={},age={}",name,age);
    不是单纯的打印文字的,name={} 对应的就是name

    我们一起看看效果吧~
    (运行后在浏览器上传参是一样的,工具不会用没事儿!)
    在这里插入图片描述
    结果:看蓝框~
    在这里插入图片描述

    源码+笔记:点我跳转

  • 相关阅读:
    告别繁琐!1分钟带你构建RabbitMQ消息应用
    深入实战:构建现代化的Web前端应用
    如何打造一个网络框架模块对接服务器
    系统表空间-mysql详解(四)
    制造型企业的数字化转型离不开 MES 系统
    不知道用什么图表展示数据?看这份图表选择指南就够了
    CentOS7安装jdk
    Spring+Vue实现token登录
    CSDN一站式云服务开放内测,诚邀C站新老用户来抢鲜
    Linux虚拟机能ping通开发板的网络环境配置
  • 原文地址:https://blog.csdn.net/weixin_50369395/article/details/126527264