[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.xdnf.cn/news/141027.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

mysql 备份和还原 mysqldump

因window系统为例 在mysql安装目录中的bin目录下 cmd 备份 备份一个数据库 mysqldump -uroot -h hostname -p 数据库名 > 备份的文件名.sql 备份部分表 mysqldump -uroot -h hostname -p 数据库名 [表 [表2…]] > 备份的文件名.sql ## 多个表 空格隔开,中间…

网络协议学习地图分享

最近在回顾网络知识点的时候,发现华为数通有关报文格式及网络协议地图神仙网站,这里涵盖了各个协议层及每个协议层对应的协议内容,最人性的化的一点是点击每个单独的协议可以跳转到该协议详细报文格式页面,有对应的说明和解释&…

ARM64汇编基础

ARM64汇编基础 主要内容 到目前为止,大部分的移动设备都是64位的arm架构,一直想抽个时间系统学习下,这个周末就专门来学习下。毕竟两天的时间,也只是简单的入门了解下,为后续工作和学习打下基础。 本次学习的主要内容…

Spring学习笔记4 Bean的作用域

Spring学习笔记3 Spring对IOC的实现_biubiubiu0706的博客-CSDN博客 新建模块 spring-004 引入依赖 <dependencies><!--Spring依赖--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId>&…

多维时序 | MATLAB实现WOA-CNN-BiLSTM-Attention多变量时间序列预测(SE注意力机制)

多维时序 | MATLAB实现WOA-CNN-BiLSTM-Attention多变量时间序列预测&#xff08;SE注意力机制&#xff09; 目录 多维时序 | MATLAB实现WOA-CNN-BiLSTM-Attention多变量时间序列预测&#xff08;SE注意力机制&#xff09;预测效果基本描述模型描述程序设计参考资料 预测效果 基…

uniapp实现表格冻结

效果图如下&#xff1a; 思路&#xff1a; 1.由于APP项目需要&#xff0c;起初想去插件市场直接找现成的&#xff0c;结果找了很久没找到合适的&#xff08;有的不支持vue2有的不能都支持APP和小程序&#xff09; 2.后来&#xff0c;就只能去改uni-table源码了&#xff0c;因…

ORB-SLAM2实时稠密地图,解决运行报段错误(核心已转储)运行数据集时出现段错误,出现可视化界面后闪退(添加实时彩色点云地图+保存点云地图)

高翔的稠密建图仓库 1. git clone https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_map.git 2. 去ORB SLAM2里拷贝Vocabulary到/home/cgm/ORBSLAM2_with_pointcloud_map/ORB_SLAM2_modified文件夹下 3. 删除一些build文件夹 删除ORB_SLAM2_modified/Thirdparty/DB…

【Acwing1027】方格取数(动态规划)题解

题目描述 思路分析 错误思路&#xff1a; 贪心法&#xff0c;先走一次求出最大值&#xff0c;把走过的路上面的数值清零&#xff0c;然后用同样的方法再走一遍求最大值&#xff0c;然后让这两个最大值相加就是最后的结果。 很多人在看到这个题目的时候会有上面的思路&#x…

常见限流算法学习

文章目录 常见限流算法学习前言限流算法基本介绍固定窗口计数器限流算法计数器限流算法相关介绍计数器限流算法的实现&#xff08;基于共享变量&#xff09;计数器限流算法的实现&#xff08;基于Redis&#xff09; 滑动窗口计数器算法滑动时间窗口算法相关介绍介绍滑动时间窗口…

【Python】Pycharm中设置使用conda的虚拟环境(保姆级图文)

目录 添加新的环境添加conda环境等待库加载加载成功总结 欢迎关注 『Python』 系列&#xff0c;持续更新中 添加新的环境 添加conda环境 虚拟环境路径 G:\anaconda3\envs\paddle_env\python.execonda路径 G:\anaconda3\Scripts\conda.exe等待库加载 第一次这个库加载可能要…

确知波束形成matlab仿真

阵列信号处理中的导向矢量 假设一均匀线性阵列&#xff0c;有N个阵元组成&#xff0c;满足&#xff1a;远场、窄带假设。 图1. 均匀线性阵模型 假设信源发射信号&#xff0c;来波方向为 θ \theta θ&#xff0c;第一个阵元接收到的信号为 x ( t ) x(t) x(t)&#xff0c;则第…

【解决】Unity3D中无法在MQTT事件中执行Animator

问题原因&#xff1a; 解决方法&#xff1a; 解决过程 1、在 Unity 中创建一个名为 MainThreadDispatcher 的脚本&#xff0c;用于处理主线程操作。 using System.Collections.Generic; using UnityEngine;public class MainThreadDispatcher : MonoBehaviour {private stati…

MySQL常见面试题(一)

&#x1f600;前言 在数据库管理系统中&#xff0c;存储引擎起着核心的角色&#xff0c;它决定了数据管理和存储的方式。MySQL作为一个领先的开源关系型数据库管理系统&#xff0c;提供了多种存储引擎来满足不同的需求和优化不同的应用。除了选择合适的存储引擎&#xff0c;数据…

类和对象(详)

类对象【本节目标】&#xff1a; 1.掌握类的定义方式以及对象的实例化 2.掌握类中的成员变量和成员方法的使用 3.掌握对象的整个初始化过程 4.掌握封装特性 5.掌握代码块 6.掌握内部类 类和对象 1.面向对象的初步认知 1.1 什么是面向对象 Java是一门纯面向对象的语言…

Android 滑动事件消费监控,Debug 环境下通用思路

Android Debug 环境下滑动事件消费监控通用思路 背景 Android 开发中&#xff0c;经常会遇到滑动事件冲突。在一些简单的场景下&#xff0c;我们如果能够知道是那个 View 拦截了事件&#xff0c;那我们能够很容易得解决。解决方法通常就是内部拦截法或者外部拦截法。ViewPage…

【计算机网络 - 自顶向下方法】计算机网络和因特网

目录 1. What is the Internet? 1.1 因特网的具体构成 1.2 因特网的功能 2. Network core 2.1 基本介绍 2.2 分组交换 2.2.1 序列化时延 2.2.2 排队延迟和丢包 2.2.3 分组交换的优缺点 2.3 电路交换 2.3.1 基本概念 2.3.2 电路交换网络中的复用 2.3.3 电路交换文件…

npm发布vue3自定义组件库--方法二

npm发布vue3自定义组件库 创建项目 vue create test-ui自定义组件 创建自定义组件&#xff0c;组件名称根据你的需求来&#xff0c;最好一个组件一个文件夹&#xff0c;下图是我的示例。 src/components 组件和你写页面一样&#xff0c;所谓组件就是方便实用&#xff0c;不…

Tomcat多实例+Nginx动静分离、负载均衡

这里写目录标题 Tomcat多实例动静分离、负载均衡一、Tomcat多实例部署1、安装JDK2、安装启动tomcat 二、NginxTomcat负载均衡、动静分离1、Nginx负载均衡实现原理1.1 原理1.2 Nginx配置反向代理的主要参数 2、Nginx动静分离实现原理2.1 原理2.2 Nginx静态处理优势 3、动静分离配…

Visio——绘制倾斜线段

一、形状 -> 图表和数学图形 -> 多行 二、放置多行线&#xff0c;可以发现存在两个折点 三、选择多行线&#xff0c;右键选择删除点&#xff0c;即可得到倾斜线段

山西电力市场日前价格预测【2023-09-25】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-09-25&#xff09;山西电力市场全天平均日前电价为442.30元/MWh。其中&#xff0c;最高日前电价为720.46元/MWh&#xff0c;预计出现在19: 00。最低日前电价为276.06元/MWh&#xff0c;预计…