> 文章列表 > Spring —— Spring Boot 日志文件

Spring —— Spring Boot 日志文件

Spring —— Spring Boot 日志文件

JavaEE传送门

JavaEE

Spring —— Spring Boot 创建和使用

Spring —— Spring Boot 配置文件


目录

  • Spring Boot 日志文件
    • Spring Boot 使用日志
      • 得到日志对象
      • 使用日志对象打印日志
    • 日志级别
      • 日志级别作用
      • 日志级别的分类
      • 日志级别设置
    • 日志持久化
    • 更简单的日志输出 (lombok)

Spring Boot 日志文件

日志是程序的重要组成部分, 可以发现定位问题, 还可以实现:

  • 记录用户登录日志, 分析用户是正常登录还是恶意破解用户
  • 记录系统的操作日志, 方便数据恢复和定位操作人
  • 记录程序的执行时间, 方便为以后后话程序提供数据支持

Spring —— Spring Boot 日志文件

Spring Boot 项目在启动时默认就有日志输出

Spring —— Spring Boot 日志文件

通过上述日志信息, 我们可以发现:

  • Spring Boot 内置了日志框架.
  • 默认情况下, 输出的日志不是开发者定义和打印的.
  • 日志默认时打印在控制台上的, 但控制台的日志是不能被保存的.

Spring Boot 使用日志

我们要使用 Spring Boot 日志, 需要以下两步:

  1. 先得到日志对象
  2. 使用日志对象的相关语法输出要打印的内容

得到日志对象

在程序中获取日志对象需要使用日志工厂 LoggerFactory

// 得到日志对象
private static final Logger logger = LoggerFactory.getLogger(UserController.class);

# 注意 # Logger 对象是属于 org.slf4j 包下的.


使用日志对象打印日志

@RequestMapping("/hi")
public String sayHi() {logger.trace("我是 trace");logger.debug("我是 debug");logger.info("我是 info");logger.warn("我是 warn");logger.error("我是 error");return "Hi, Spring Boot";
}

打印日志展示:

Spring —— Spring Boot 日志文件

# 注意 # 我们刚刚写了五个方法, 这里却只打印了三个, 这和日志级别有关, 日志在进行打印的时候, 只会打印当前日志级别, 以及比当前日志级别更高的.

Spring —— Spring Boot 日志文件

日志格式说明

Spring —— Spring Boot 日志文件


日志级别

日志级别作用

  1. 快速筛选重要的日志
  2. 不同环境实现不同日志级别的设置需求

日志级别的分类

  • trace: 微量, 少许的意思, 级别最低
  • debug: 需要调试时候的关键信息打印
  • info: 普通的打印信息 (默认日志级别)
  • warn: 警告, 不影响使用, 但需要注意的问题
  • error: 错误信息, 级别较高的错误日志信息
  • fatal: 致命的, 因为代码异常导致程序退出执行的事件

日志级别的顺序

Spring —— Spring Boot 日志文件


日志级别设置

设置日志级别, 只需要在配置文件中设置 “logging.level

# 设置日志级别
logging:level:root: debug

比之前多了一个 debug 日志

Spring —— Spring Boot 日志文件

Spring —— Spring Boot 日志文件

针对不同的目录设置级别

Spring —— Spring Boot 日志文件


System.out.println VS 日志框架, 两个致命缺点

  1. 打印信息不全 (没有打印日志时间, 没有打印日志的来源)
  2. 不能实现日志打印的隐藏和显示

日志持久化

保存日志到磁盘

# 设置日志的保存目录

# 设置日志文件的目录
logging:file:path: D:\\\\logs\\\\log

# 设置日志文件的文件名

# 设置⽇志文件的文件名
logging:file:name: D:\\\\logs\\\\test.log

# 注意 #

  • System.out.println 打印的日志不能被持久化.
  • 如果设置日志文件的文件名时, 没有写路径, 会和默认程序放到一块.
  • 日志不会被覆盖.

更简单的日志输出 (lombok)

# 添加 lombok 依赖

<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.20</version><optional>true</optional>
</dependency>

# 使用 @Slf4j 注解输出日志

使⽤ @Slf4j 注解,在程序中使用 log 对象即可输⼊日志,并且只能使用 log 对象才能输出,这是 lombok 提供的对象名.

package com.example.demo.controller;import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;@Controller
@RequestMapping("/p")
@ResponseBody
@Slf4j
public class ArticleController {@RequestMapping("/log")public String sayHi() {log.error("Slf4j 的error");log.warn("Slf4j 的warn");log.info("Slf4j 的warn");return "hi, articleLog";}
}

旧项目添加新依赖

添加 EditStarters 插件

Spring —— Spring Boot 日志文件

pom.xml 单击右键

Spring —— Spring Boot 日志文件


🌷(( ◞•̀д•́)◞⚔◟(•̀д•́◟ ))🌷

以上就是今天要讲的内容了,希望对大家有所帮助,如果有问题欢迎评论指出,会积极改正!!

在这里插入图片描述
在这里插入图片描述

这里是Gujiu吖!!感谢你看到这里🌬

祝今天的你也

开心满怀,笑容常在。