[JAVAee]SpringBoot日志文件

目录

日志的作用

SpringBoot中的日志

框架说明

日志对象的获取

日志的分类

日志的级别设置

日志的打印

日志的持久化


日志的作用

  • 日志可以帮助我们发现程序的问题并进行定位.
  • 日志还可以记录用户的登录信息,分析用户的意图.
  • 日志能记录程序执行的时间,记录数据.为日后的程序优化提供数据支持.

SpringBoot中的日志

在SpringBoot中,内置的日志的框架(SLF4J + logback).

框架说明

slf4j是日志的门面,而logback是日志的实现.由程序员来调用slf4j来去控制logback的实现.

为什么要有一个日志门面,而不是直接调用logback呢?

答案是:为了解耦.日志门面可以帮助我们去对接不同的日志实现框架.在项目中的代码,我们只要调用slf4j的对象与使用其方法就好了.我们可以并不用去关心底层日志的实现,如果当项目想要替换一个日志的实现框架时也不会影响到项目的代码,因为我们调用的一直是日志的门面而不是日志实现的本身. 

日志对象的获取

在程序中想要打印日志,首要获取日志门面(SLF4J)的日志工厂对象.

springboot中已经内置了,我们直接调用就好.不需要额外添加依赖了.

//Logger为slf4jprivate static Logger logger = LoggerFactory.getLogger(User.class);//参数为类

 日志工厂在得到日志对象时需要将类名传输进去,这样才能定位到日志是由哪一个类进行发送的.

日志的分类

日志根据优先级被分成六大类,分别是(优先级由1-6递增):

  1. trace:微量,少许的意思,级别最低;
  2. debug:需要调试时候的关键信息打印;
  3. info:普通的打印信息(默认⽇志级别)
  4. warn:警告,不影响使⽤,但需要注意的问题;
  5. error:错误信息,级别较⾼的错误⽇志信息;
  6. fatal:致命的,因为代码异常导致程序退出执⾏的事件

日志的级别有什么用呢?

日志只会打印比目前级别大与包括其本身的日志类型.

例如,目前的级别为info,则日志只会打印info,warn,error,fatal级别类型的日志.  

因为一个项目中的日志信息是非常多的,这样分类能够更好的让程序员排查出所需的信息.  

日志的级别设置

我们可以在项目的配置文件中设置日志的优先级.

笼统的方式,root表示整个项目 

logging.level.root=fatal #将日志的级别设置成faftal

在同一个项目的不同类下设置不同的级别为:

#根据路径找到类来设置级别
logging.level.com.example.demo.User=error
logging.level.com.example.demo.Student=warn

但在slf4j中只支持设置四个等级,error,warn,info与debug.

像这里设置了fatal,但还是会打印error等级

日志的打印

方法一:

我们只要调用slf4j的Logger对象就好了

@Controller
public class Log {//Logger为slf4jprivate static Logger logger = LoggerFactory.getLogger(User.class);@PostConstructpublic static void getLogger() {logger.error("救命啊这是个错误!");logger.info("啊啊啊啊");logger.trace("我是trace");}
}

方法二:

搭配Lombok框架与@Slf4j注解来使用.

直接使用log对象,log对象是由Lombok提供的特定对象名,只能使用log. 

@Slf4j
public class Log {@PostConstructpublic static void getLogger() {log.error("我是lombok搭配@slf4j标签实现的");}
}

我们可以在targe下查看.class文件中的代码,就可以发现是lombook自动为我们创建了当前类下的logger对象

日志的持久化

上面我们日志的输出都是在idea的控制台上,当重启一遍服务器,日志就都会被清空了.

所以日志的持久化也是很重要的.

只要在配置文件中配置日志的路径与文件名即可.

logging.file.path=D:\\JAVA-home\\logs
logging.file.name=spring-test.log

就可以将日志以log的形式存储到计算机中. 

日志存储成一个文件最大的内存限制为10MB,只要大于10MB就会生成一个新的日志文件来存储日志. 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/115516.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

杂记 | 使用gitlab-runner将python项目以docker镜像方式流水线部署到服务器(解决部署缓慢和时区不对的问题)

文章目录 01 需求背景1.1 需求1.2 步骤 02 编写BaseDockerfile2.1 编写2.2 说明2.3 执行 03 编写Dockerfile04 编写.gitlab-ci.yml05 项目结构 01 需求背景 1.1 需求 我有一个python项目,该项目可能是一个服务器监控程序,也可能是一个后端程序&#xf…

CSS滚动条详解(::-webkit-scrollbar )

滚动条出现的事件&#xff1a; 当设置定宽或者定高的元素添加overflow:scroll属性&#xff0c;会出现滚动条&#xff0c;但是原生样式的会比较丑影响美观。 <div class"content"><div class"contain"></div> </div>.content {wid…

坚鹏:中国邮政储蓄银行金融科技前沿技术发展与应用场景第4期

中国邮政储蓄银行金融科技前沿技术发展与应用场景第4期培训圆满结束 中国邮政储蓄银行拥有优良的资产质量和显著的成长潜力&#xff0c;是中国领先的大型零售银行。2016年9月在香港联交所挂牌上市&#xff0c;2019年12月在上交所挂牌上市。中国邮政储蓄银行拥有近4万个营业网点…

Mybatis分页框架-PageHelper

Mybatis分页框架-PageHelper 一、PageHelper基础使用1.引入jar包2.配置conifg3.测试使用 二、PageHelper的多种用法1.使用PageHelper.startPage传入对象2.不使用PageHelper.startPage,而使用PageHelper.offsetPage3.使用Lambda进行分页4.不使用PageHelper直接分页5.想要使用分页…

Webpack使用plugin插件自动在打包目录生成html文件

我们使用html-webpack-plugin插件可以自动在打包代码目录生成html文件 使用步骤&#xff1a; 一、安装依赖 在控制台中输入如下代码&#xff1a; npm i -D html-webpack-plugin 二、在webpack.config.js中配置插件 const HTMLPlugin require("html-webpack-plugin&q…

华为云HECS安装docker

1、运行安装指令 yum install docker都选择y&#xff0c;直到安装成功 2、查看是否安装成功 运行版本查看指令&#xff0c;显示docker版本&#xff0c;证明安装成功 docker --version 或者 docker -v 3、启用并运行docker 3.1启用docker 指令 systemctl enable docker …

网络编程day05(IO多路复用)

今日任务&#xff1a; TCP多路复用的客户端、服务端&#xff1a; 服务端代码&#xff1a; #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <arpa/inet.h> #include <netinet/in.h> #include <unistd.h> …

深度学习从入门到入土

1. 数据操作 N维数组样例 N维数组是机器学习和神经网络的主要数据结构 0-d 一个类别&#xff1a; 1.0 1-d 一个特征向量(一维矩阵)&#xff1a;[1.0, 2.7, 3.4] 2-d 一个样本-特征矩阵-(二维矩阵) 3-d RGB图片 &#xff08;宽x高x通道&#xff09;- 三维数组 4-d 一个RGB…

Apipost最佳实践

自诞生以来&#xff0c;Apipost凭借其简洁直观的用户界面、强大的功能以及简单、易上手的操作&#xff0c;让Apipost成为了开发人员不可或缺的工具。本文将详细介绍Apipost的主要功能和使用方法&#xff0c;帮助大家更好地了解这款优秀的API开发工具。 下载安装 直接进入Apip…

网络初识

一 IP 地址 概念: IP 地址主要用于表示网络主机、其他网络设备&#xff08;如路由器&#xff09;的网络地址。简单说&#xff0c;IP地址用于定位主机的网络地址 格式 IP 地址是一个32为的二进制数&#xff0c;通常被分割为4个“8位二进制数“&#xff08;也就是4个字节&…

在github上设置不同分支,方便回滚

在github上设置不同分支&#xff0c;方便回滚 步骤可能出现的问题couldnt find remote ref gpuVersion1. 确保您处于正确的分支2. 添加并提交更改&#xff08;如果还未进行&#xff09;3. 推送本地分支到远程仓库4. 验证操作 步骤 之前在github上上传了一个项目代码&#xff0c…

GitHub Copilot Chat

9月21日&#xff0c;GitHub在官网宣布&#xff0c;所有个人开发者可以使用GitHub Copilot Chat。用户通过文本问答方式就能生成、检查、分析各种代码。 据悉&#xff0c;GitHub Copilot Chat是基于OpenAI的GPT-4模型打造而成&#xff0c;整体使用方法与ChatGPT类似。例如&…