勇士屠熊,绿军射鹿,夕阳西下,人群散尽,唯有烈火燎原势不可挡

勇士屠熊,绿军射鹿,夕阳西下,人群散尽,唯有烈火燎原势不可挡,第1张

SpringBoot的日志
    • 一、了解日志
      • 1、什么是日志
      • 2、日志的作用
    • 二、自定义打印日志
      • 1、实现步骤
      • 2、日志的格式说明
    • 三、日志级别
      • 1、了解日志级别
      • 2、配置日志级别
    • 四、日志持久化
    • 五、使用lombok进行日志输出
      • 1、步骤
      • 2、lombok的原理
      • 3、关于lombok的更多注解

一、了解日志 1、什么是日志

程序运行过程中所产生的信息就是日志

当我们启动SpringBoot时,控制台打印的信息就是日志

2、日志的作用
  1. 发现和定位问题
  2. 记录用户的登录信息,进行大数据分析
  3. 记录系统的 *** 作信息,方便数据的恢复和定位 *** 作者
  4. 记录程序的执行时间,方便以后优化程序
二、自定义打印日志 1、实现步骤
  1. 获得日志对象
    注意:日志对象Logger 属于org.slf4j包下的,不要导错包
  2. 使用日志对象打印日志

Controller包中,设置一个LoggerController类

package com.example.demo.Controller;

@Controller
@ResponseBody
public class LoggerController {

    // 1. 得到日志对象
    private Logger logger = LoggerFactory.getLogger(LoggerController.class);

    // 2. 打印日志
    @RequestMapping("/logger")
    public String logger(){
        logger.trace("日志级别: trace");
        logger.debug("日志级别: degue");
        logger.info("日志级别: info");
        logger.warn("日志级别: warn");
        logger.error("日志级别: error");
        return "logger";
    }
}

启动SpringBoot,浏览器输入localhost:8080/logger
除启动SpringBoot时,打印的日志外,还打印如下日志:
(由于SpringBoot默认日志级别是 info,因此只能打印 info 及更高级别的日志)

2、日志的格式说明


3、SpringBoot内置了日志框架slf4j,采用了“门面模式”

  1. 日志门面:slf4j
  2. 日志实现:logback

关于常见的日志框架:

  1. 日志框架包括日志门面、日志实现
  2. 日志门面就相当于是装修公司,日志实现相当于是工程队(实现具体的 *** 作),日志门面仅能对应一个日志实现
三、日志级别 1、了解日志级别

日志级别就是用来进行日志的过滤

当某个目录设置了日志级别,我们只能得到此级别及更高级别的日志

  1. trace:级别最低
  2. debug:需要调试时候的关键信息
  3. info:普通的打印信息
  4. warn:警告信息
  5. error:错误信息
  6. fatal:灾难级的,因为代码异常导致程序退出执行的事件;系统级别,程序猿无法打印
2、配置日志级别

(1)、在SpringBoot配置文件中配置

logging:
  level:
    root: warn  # 设置所有目录的日志级别
    com:
      example:
        demo:
          Controller: trace   # 设置com.example.demo.Controller目录的日志级别
          DemoApplication: info # 设置com.example.demo.DemoApplication的日志级别
  1. 同时设置全局的日志级别和指定目录的日志级别,指定目录的日志级别为前者
  2. 需要注意的是:必须从根目录(com包)开始,一步一步的到指定目录;如下设置日志级别,没用
logging:
  level:
    demo:
      Controller: trace   # 设置com.example.demo.Controller目录的日志级别

(2)、启动SpringBoot,浏览器输入localhost:8080/logger

四、日志持久化

日志持久化:将控制台打印的日志写到相应的目录或文件下

logging:
  file:
    path: D:\         # 设置日志文件的目录,系统自动命名 spring.log
    name: D:\Springlogging.log     # 设置日志文件的文件名

如果日志的内容过大,超过日志文件的容量,系统自动设置另一个日志文件保存

将controller包下的error级别以上的日志保存到log_all.log下,将service下warn级别以上的日志保存到log_all.log下

logging:
  level:
    com:
      example:
        demo:
          controller: error
          service: warn
  file:
    name: D:\log_all.log
五、使用lombok进行日志输出 1、步骤
  1. 添加 lombok 框架
  2. 使用 @Slf4j 注解输出日志

(1)、添加lombok框架,在创建SpringBoot项目时,引入即可

<dependency>
            <groupId>org.projectlombokgroupId>
            <artifactId>lombokartifactId>
            <optional>trueoptional>
        dependency>

(2)、添加 @Slf4j 注解,使用log日志对象,即使log标红,没关系,照样运行项目

在Controller包中,创建一个LoggerSlf类,此时日志级别默认是 info

package com.example.demo.Controller;

@Controller
@ResponseBody
@Slf4j
public class LoggerSlf {

    @RequestMapping("/loggerSlf")
    public String logger(){
        log.trace("日志级别: trace");
        log.debug("日志级别: degue");
        log.info("日志级别: info");
        log.warn("日志级别: warn");
        log.error("日志级别: error");
        return "logger";
    }
}

启动SpringBoot,在浏览器输入localhost:8080/loggerSlf

2、lombok的原理

lombok的原理:lombok通过遵循Java编译器增强的规范,实现了Java源代码在生成字节码的时候功能的增强
@Slf4j注解的作用:IDEA编译源代码的时候,根据注解声明,在字节码文件中自动添加了一段 创建日志对象 的代码

对比 .java源文件 和程序运行后出现的 targe目录 下的 .class文件 ,发现 .class 文件 较 .java源文件 少了一个@Slf4j 注解,多了一段创建名为 log 的日志对象 的代码

3、关于lombok的更多注解
@Data@Getter + @Setter + @ToString + @EqualsAndHashCode + @NoArgsConstructor + @RequiredArgsConstructor
@Getter自动添加getter方法
@Setter自动添加setter方法
@ToString自动添加toString方法
@EqualsAndHashCode自动添加equals和hashCode方法
@NoArgsConstructor自动添加无参构造方法
@AllArgsConstructor自动添加全属性的构造方法,顺序按照属性定义的顺序
@RequiredArgsConstructor自动添加 必需属性的构造方法,final+@NonNull的属性为必需
@NonNull属性不能为空

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/922460.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存