🍧🍧哈喽,大家好,我是小浪。那么上篇博客我们学习了SpringBoot配置文件的相关操作,本篇博客我们将学习一个新的知识点,SpringBoot日志文件。🖥🖥
📲目录
一、日志是什么,有什么作用?
二、如何看到日志文件?
三、如何自定义日志打印
1、在程序中得到⽇志对象
2、使用日志对象提供的内置方法来打印日志
四、日志级别
1、日志级别有什么作用?
2、日志的级别分类;
3、日志级别的设置
4、日志持久化
五、更简单的日志输出
六、在原有项目添加lombok
一、日志是什么,有什么作用?
二、如何看到日志文件?
🌇我们的springboot项目启动的时候在控制台就有日志输出:
🎇通过运行结果我们可以观察到:
三、如何自定义日志打印
1、在程序中得到⽇志对象
在程序中获取日志对象需要使⽤⽇志工厂 LoggerFactory,语法如下:
private static final Logger logger = LoggerFactory.getLogger(UserController.class);
注意这里Logger选择这个slf4j包下的,不要导错包;
2、使用日志对象提供的内置方法来打印日志
package com.example.demo.controller;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;@RequestMapping("/user")
@Controller
@ResponseBody //用来设置当前类中所有的方法返回的是数据而非页面
public class UserController {//1、得到日志对象private static final Logger logger = LoggerFactory.getLogger(UserController.class);@RequestMapping("/hello")public String Hi(){// 写日志logger.trace("我是 trace");logger.debug("我是 debug");logger.info("我是 info");logger.warn("我是 warn");logger.error("我是 error");return "hello SpringBoot";}
}
2、在resources包下新建一个yml文件,写上端口号,自己取就可以;
3、运行启动类DemoApplication;
4、在浏览器输入对应的url地址来访问;http://localhost:1234/user/hello ,按下回车:
OK,这个时候再回到我们的idea控制台观察运行结果:
那么问题来了,我们写的代码是要打印五个,我们发现结果只打印了三个,那么trace和debug去哪里了呢?那就要来到我们下一个目录的内容了,日志的级别;
四、日志级别
1、日志级别有什么作用?
1、日志级别可以帮你筛选出重要的信息,比如设置日志级别为 error,那么就可以只看程序的报错日志了,对于普通的调试日志和业务日志就可以忽略了,从而节省开发者信息筛选的时间。
2、日志级别可以控制不同环境下,一个程序是否需要打印日志,如开发环境我们需要很详细的信息而生产环境为了保证性能和安全性就会输入尽量少的日志,而通过日志的级别就可以实现此需求;
2、日志的级别分类;
对应日志级别的顺序:
即越往上接收到的消息就越少,如设置了 warn 就只能收到 warn、error、fatal 级别的⽇志;
3、日志级别的设置
1、日志级别我们需要在配置文件application.yml中设置即可,这里我们在生产环境下的配置文件中设置日志的级别为debug:
logging:level:root: debug
2、运行启动类,这时候控制台会打印很多日志;
3、在浏览器访问一下,点击这个刷新按钮即可;
4、再次回到我们的idea,观察运行结果;
那么,不仅可以对全局的类进行设置,还可以针对指定的包下的类进行设置日志的级别:
4、日志持久化
3、查看刚设置的日志文件目录下是否生成了日志文件;
4、OK,我们打开来看一下,写入了哪些日志内容;
要注意,这里我们如果在sayHi方法里面给出System.out.println来打印一行内容,那么是不会写入到日志文件当中的,也就是说System.out.println打印的日志是不能够持久化的。
5、我们还可以配置日志文件的文件名;
name: D:\Spirng框架\Spirng_GO\Spring_Learn\springboot项目\logs\springboot-1.logs
运行结果:
五、更简单的日志输出
在线演示:首先我们在controller包下新建一个AriticleController类:
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
@ResponseBody
@RequestMapping("/art")
@Slf4j
public class ArticleController {// // 1.得到日志对象
// private static final Logger logger = LoggerFactory.getLogger(ArticleController.class);@RequestMapping("/hi")public String sayHi() {log.trace("我是 slf4j 的 trace");log.debug("我是 slf4j 的 debug");log.info("我是 slf4j 的 info");log.error("我是 slf4j 的 error");return "Hi,Article Info.";}}
注意注解@Slf4j已经添加,添加之后,我们便直接可以使用log对象,并且只能使⽤ log 对象才能输出,这是 lombok 提供的对象名;
跟之前一直,运行启动类,然后去浏览器访问我们的url地址;
idea控制台打印的信息:
对应的相应目录,观察记录下来的日志:
六、在原有项目添加lombok
那么有的小伙伴创建springboot项目的时候可能没有添加lombok依赖,但是现在想在当前项目添加lombok依赖,以便于实现更简单的日志打印,如何操作呢?
1、首先我们需要装一个插件EditStarters;
2、安装完成之后,在我们的配置文件application.yml中鼠标右键,找到Generate;
3、点击EditStarters;
4、找到lombok选中,点击OK;
🌁OK,那么springboot日志文件的相关内容就到这里啦,创作不易,还请三连一波,感谢支持,我们下期再见啦!!💡💡