| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> SpringBoot日志 -> 正文阅读 |
|
[Java知识库]SpringBoot日志 |
日志是程序的重要组成部分,如果没有日志,那么程序出现了错误,我们便无法知晓错误发生在哪里。 日志的功能: 1.快速的定位和排查问题; 2.记录用户信息; 3.记录操作信息,可以帮助恢复数据或者定位责任人; 4.记录程序的执行时间,方便获取优化和分析; 在SpringBoot中它是内置了日志框架的,所以只要我们运行SpringBoot日志就会被打印在控制台上。但是输出的日志并不是开发者自己定义和打印的,还有一个问题就是控制台上面的日志是不能保存的,所以从这两个角度出发,提出来两个问题:1.开发者自定义打印日志;2.日志的持久化 开发者自定义打印日志自定义打印日志的步骤: 1.在程序中得到日志对象;? 2.使用日志对象的相关语法输出要打印的对象 上面在获取日志对象时,需要使用日志工厂LoggerFactory,日志工厂需要将每一个类的类型传递进去,这样才知道日志的归属类,才能更方便、更直观定位到文体类。这里的Logger对象是在org.slf4j包小面的。? 日志的持久化?日志持久化的方式有两种: 方式一:设置日志的保存路径?
?上面这段代码的意思就是在指定路径下面创建spring.log日志文件 执行程序以后找到指定文件: 默认情况下springboot会有一个最大的日志大小限制,如果日志的文件大于默认的最大日志大小,那么springboot会从新启动一个日志? 方式二:设置日志文件的文件名
上面因为没有指定保存路径,所以它默认是保存在当前项目所在的目录里面: 当然上面也可以指定全路径名? 使用lombok的方式来输出日志当我们现在每一个类里面都要输出打印日志时,每回都去执行 private static Logger logger = LoggerFactory.getLogger(类名.class);这个命名比较麻烦,为了更加方便的输出打印日志,就可以使用lombok的方式: 一:首先添加lombok框架,如果是在创建SpringBoot项目时就添加过lombok框架这里就不用再添加了,pom.xml文件中可以检查自己有没有添加该框架 我这里是添加过了的,如果没有添加的话可以手动添加,这里推荐一个插件,使用该插件可以很方便的添加各种框架: 去设置里面的插件中下载EditStarters这个插件,下载好以后安转插件然后重启IDEA 然后在你的IDEA窗口中右键,选择Generate,然后点击刚才安转好的插件,再点击OK 然后你就可以输入框架的名称,双击响应的框架到项目中 二:使用@Slf4j注解输出日志 lombok的原理?lombok框架他其实就是对代码的一次简化,让程序员不用再重复的编写那些冗余的代码,而是在编译器编译期间lombok自己将那些代码添加进程序。 ? 通过看上面使用lombok框架来打印日志的字节码文件就可以看出,他其实就是一次代码的简化操作: ? lombok里面还有更多的注解:
? 日志结构?我们只有在认识清楚日志结构以后才能准确定位程序中的问题所在。 ? 日志的级别?在SpringBoot项目中日志一共有6个级别,它们的关系如下图: ? trace:微量,少许的意思,级别最低; debug:需要调试的时候关键信息打印; info:普通的打印信息; warn:警告,不影响使用,但需要注意的问题; error:错误信息,级别较高的错误日志信息; fatal:致命的,因为代码异常导致程序退出执行的事件? 日志使用?一:日志级别配置只需要在配置文件中设置logging.level配置项即可:
对上面的配置文件做出解释:logging表示一个这个配置文件是一个日志,level表示日志级别的层级,而root则表示要作用的路径,这里表示根路径,当然也可以配置为其他路径,比如像下面这样
info则表示配置的日志级别是普通日志。 二:打印日志 ? ? 可以看到因为我配置的日志级别是info的,所以打印的时候它只打印了比他高的日志级别的信息,而比它低的日志级别的信息则没有被打印。? ? ? ? ? ? ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 8:53:22- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |