怎么建网站手机版,定制网站建设公司排行,搜狗网站收录,wordpress js弹窗#x1f367;#x1f367;哈喽#xff0c;大家好#xff0c;我是小浪。那么上篇博客我们学习了SpringBoot配置文件的相关操作#xff0c;本篇博客我们将学习一个新的知识点#xff0c;SpringBoot日志文件。#x1f5a5;#x1f5a5; #x1f4f2;目录
一、日志是什么… 哈喽大家好我是小浪。那么上篇博客我们学习了SpringBoot配置文件的相关操作本篇博客我们将学习一个新的知识点SpringBoot日志文件。 目录
一、日志是什么有什么作用?
二、如何看到日志文件
三、如何自定义日志打印
1、在程序中得到⽇志对象
2、使用日志对象提供的内置方法来打印日志
四、日志级别
1、日志级别有什么作用
2、日志的级别分类
3、日志级别的设置
4、日志持久化
五、更简单的日志输出
六、在原有项目添加lombok 一、日志是什么有什么作用?
日志是程序的重要组成部分想象⼀下如果程序报错了不让你打开控制台看日志那么你能找到出错的原因吗 答案是不可以的写代码是很严肃的一件事情不能靠猜来解决问题因此日志对于我们来说最主要的用途就是排除和定位问题。 二、如何看到日志文件
我们的springboot项目启动的时候在控制台就有日志输出
通过运行结果我们可以观察到
1、Spring Boot 内置了⽇志框架 2、默认情况下输出的⽇志并非是开发者定义和打印的那开发者怎么在程序中自定义打印⽇志呢 3、日志默认是打印在控制台上的而控制台的⽇志是不能被保存的那么怎么把日志永久的保存下来 呢 三、如何自定义日志打印
1、在程序中得到⽇志对象
在程序中获取日志对象需要使⽤⽇志工厂 LoggerFactory语法如下
private static final Logger logger LoggerFactory.getLogger(UserController.class);
注意这里Logger选择这个slf4j包下的不要导错包 即⽇志⼯⼚需要将每个类的类型传递进去这样我们才知道⽇志的归属类才能更⽅便、更直观的定位问题类 2、使用日志对象提供的内置方法来打印日志 在demo包下新建一个包controller然后新建一个类UserController代码如下 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、日志的级别分类
trace微量少许的意思级别最低 debug需要调试时候的关键信息打印 info普通的打印信息默认⽇志级别 warn警告不影响使⽤但需要注意的问题 error错误信息级别较⾼的错误⽇志信息 fatal致命的因为代码异常导致程序退出执⾏的事件。 对应日志级别的顺序 即越往上接收到的消息就越少如设置了 warn 就只能收到 warn、error、fatal 级别的⽇志
3、日志级别的设置
1、日志级别我们需要在配置文件application.yml中设置即可这里我们在生产环境下的配置文件中设置日志的级别为debug
logging:level:root: debug
2、运行启动类这时候控制台会打印很多日志 3、在浏览器访问一下点击这个刷新按钮即可 4、再次回到我们的idea观察运行结果 那么不仅可以对全局的类进行设置还可以针对指定的包下的类进行设置日志的级别 4、日志持久化
那么以上的⽇志都是输出在控制台上的然⽽在⽣产环境上咱们需要将⽇志保存下来以便出现问题之后追 溯问题把⽇志保存下来的过程就叫做持久化。 想要将⽇志进⾏持久化只需要在配置⽂件中指定⽇志的存储⽬录或者是指定⽇志保存⽂件名之后Spring Boot 就会将控制台的⽇志写到相应的⽬录或⽂件下了。 1、配置日志文件的保存路径在自己电脑选择一个目录用来存放打印的日志信息 2、运行启动类然后去浏览器访问一下 3、查看刚设置的日志文件目录下是否生成了日志文件 4、OK,我们打开来看一下写入了哪些日志内容 要注意这里我们如果在sayHi方法里面给出System.out.println来打印一行内容那么是不会写入到日志文件当中的也就是说System.out.println打印的日志是不能够持久化的。 5、我们还可以配置日志文件的文件名 name: D:\Spirng框架\Spirng_GO\Spring_Learn\springboot项目\logs\springboot-1.logs 运行结果 五、更简单的日志输出 那么上面的演示每次都使⽤ LoggerFactory.getLogger(xxx.class) 很繁琐且每个类都添加⼀遍也很麻烦有没有更好的方式来输出日志呢 答案使⽤ lombok 来更简单的输出。 1、添加lombok框架支持 2、使用注解Slf4j 在线演示首先我们在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日志文件的相关内容就到这里啦创作不易还请三连一波感谢支持我们下期再见啦