SpringBoot的日志级别你了解吗(自定义打印日志)?

news2024/9/22 13:37:00

1 SpringBoot日志介绍

⽇志是程序的重要组成部分,想象⼀下,如果程序报错了,不让你打开控制台看⽇志,那么你能找到报错的原因吗? 如果是简单的错误有可能找出来,但是对于开发中的大多数错误还是需要我们打开日志来发现和定位问题的。
springboot项目在启动的时候默认就会有日志输出:

以上内容就是 Spring Boot 输出的控制台⽇志信息。

 本文介绍日志如何实现自定义输出,介绍日志的级别和使用

2 实现自定义日志打印

程序员自定义打印日志主要有两个步骤:

1 在程序中得到日志对象

2 使用日志对象的相关语法输出要打印的内容

2.1 得到日志对象

使用日志工厂函数LoggerFactory:

private static Logger logger = LoggerFactory.getLogger(UserController.class);

日志工厂函数中需要我们传递一个类的类型,方便知道日志的归属,发现、定位问题所在。注意Logger对象是org.slf4j包下的。(

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

SpringBoot中是内置了slf4j的,所以不用我们再手动的去添加依赖,我的maven中是没有添加slf4j的依赖但是项目中已经加入了所需要的maven:

 

2.2 使用日志打印对象

@RequestMapping("getall")
    public List<UserEntity> getAll() {
        userLogger.info("=============这是userController中的info===========");
        return userService.getAll();
    }

当后端接收到请求后就会在后端打印出刚才自定义的日志信息:

 2.3 日志格式说明

3 日志级别

  • ⽇志级别可以帮你筛选出重要的信息,⽐如设置⽇志级别为 error,那么就可以只看程序的报错⽇志了,对于普通的调试⽇志和业务⽇志就可以忽略了,从⽽节省开发者信息筛选的时间。
  • ⽇志级别可以控制不同环境下,⼀个程序是否需要打印⽇志,如开发环境我们需要很详细的信息,⽽⽣产环境为了保证性能和安全性就会输⼊尽量少的⽇志,⽽通过⽇志的级别就可以实现此需求。

3.1 日志级别以及使用

日志级别分为:

  1. TRACE: 最详细的日志级别,通常用于记录一些非常详细的调试信息,例如方法的入参、出参等。

  2. DEBUG: 用于记录调试信息,可以帮助你诊断问题。通常会记录一些关键操作的详细信息,但不会像TRACE级别那样详细。

  3. INFO: 用于记录应用程序的一般运行状态,比如启动信息、关键事件等。这是默认的日志级别。

  4. WARN: 用于记录一些可能的异常情况,这些情况不会影响应用程序的正常运行,但可能需要注意。

  5. ERROR: 用于记录错误信息,表示应用程序发生了一些错误或异常。这些错误可能会影响应用程序的正常运行。

  6. FATAL: 用于记录严重的错误,通常表示应用程序已经无法继续运行。

1-6这六种级别是按照日志级别排列的,级别越高收到的日志信息就越少,比如设置的是error级别的日志,那么就只能收到error和fetal级别的日志信息。

3.2 日志级别的设置

日志级别设置需要在配置文件中设置:

# 设置根日志级别
logging:
  level:
    root: INFO

# 设置特定包的日志级别
logging:
  level:
    org.springframework: DEBUG
    com.example: TRACE

可以设置根日志的级别也可以设置特定的包的日志级别。

现在设置根日志的级别是error看看是否还能看到info级别的日志:

 启动项目后发现控制台没有任何日志信息,后端接收到请求后自定义的info级别信息也看不见

 那么将自定义的日志级别换成error和fetal呢?

 结果是可以看到控制台输出了error的日志

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

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

相关文章

el-backtop返回顶部的使用

2023.8.26今天我学习了如何使用el-backtop组件进行返回页面顶部的效果&#xff0c;效果如&#xff1a; <el-backtop class"el-backtop"style"right: 20px; bottom: 150px;"><i class"el-icon-caret-top"></i></el-backtop&…

WebGL 绘制函数gl.drawArrays

gl.drawArrays&#xff08;&#xff09;的第1个参数 WebGL方法gl.drawArrays&#xff08;&#xff09;既强大又灵活&#xff0c;通过给第1个参数mode指定不同的值&#xff0c;在这个参数上指定不同的值&#xff0c;我们可以按照不同的规则绘制图形。 下图中的7种基本图形是We…

Java项目-苍穹外卖-Day05-Redis技术应用

1.店铺营业状态设置 需求分析和设计 左上角要求是有回显的 所以至少两个接口 1.查询营业状态接口&#xff08;分为了管理端和用户端&#xff09; 2.修改营业状态接口 因为管理端和用户端路径不同&#xff0c;所以现在是至少三个接口的 可以发现如果存到表里除了id只有一个…

【Day-20慢就是快】代码随想录-栈与队列-删除字符串中的所有相邻重复项

给出由小写字母组成的字符串 S&#xff0c;重复项删除操作会选择两个相邻且相同的字母&#xff0c;并删除它们。 在 S 上反复执行重复项删除操作&#xff0c;直到无法继续删除。 在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。 例&#xff1a; 输入&#xff…

Linux学习(三)----文件打开及创建

1 demo1.c的建立 首先打开终端输入 touch file1 接着输入&#xff1a; vi demo1.c 接着重新打开一个终端&#xff0c;输入&#xff1a; man 2 open 2 demo1.c内容编辑 2.1 复制头文件 2.2 程序基础框架 #include <sys/types.h> #include <sys/stat.h>#include &l…

同态比较算法

参考文献&#xff1a; [PS73] Paterson M S, Stockmeyer L J. On the number of nonscalar multiplications necessary to evaluate polynomials[J]. SIAM Journal on Computing, 1973, 2(1): 60-66.[IZ21] Iliashenko I, Zucca V. Faster homomorphic comparison operations …

基于蛾群算法优化的BP神经网络(预测应用) - 附代码

基于蛾群算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码 文章目录 基于蛾群算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码1.数据介绍2.蛾群优化BP神经网络2.1 BP神经网络参数设置2.2 蛾群算法应用 4.测试结果&#xff1a;5.Matlab代码 摘要…

cpolar做一个内网穿透

因为不在公司&#xff0c;需要访问公司的数据库&#xff0c;所以做一个内网穿透 下载安装 下载地址&#xff1a; https://dashboard.cpolar.com/get-started 下载后是个压缩包&#xff0c;解压后傻瓜式安装 操作隧道 安装后打开Cpolar Web UI 登录账号&#xff0c;查看隧…

python面试题--1

目录 python面试题 1&#xff09;什么是Python&#xff1f;使用Python有什么好处&#xff1f; 2&#xff09;什么是PEP 8&#xff1f; 3&#xff09;什么是序列化和非序列化&#xff1f; 4&#xff09;如何解释Python&#xff1f; 5&#xff09;如何在Python中内存管理&a…

Unity3D软件安装包分享

目录 一、软件简介 二、软件下载 一、软件简介 Unity3D是一款全球知名的游戏开发引擎&#xff0c;由Unity Technologies公司开发。它提供了一个跨平台、多功能的开发环境&#xff0c;支持创建2D和3D游戏、交互式应用、虚拟现实、增强现实等多种类型的应用程序。以下是Unity3D…

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

日前价格预测 预测明日&#xff08;2023-08-27&#xff09;山西电力市场全天平均日前电价为318.11元/MWh。其中&#xff0c;最高日前电价为356.66元/MWh&#xff0c;预计出现在19: 15。最低日前电价为273.48元/MWh&#xff0c;预计出现在04: 30。 价差方向预测 1&#xff1a; 实…

01-Flask-简介及环境准备

Flask-简介及环境准备 前言简介特点Flask 与 Django 的比较环境准备 前言 本篇来介绍下Python的web框架–Flask。 简介 Flask 是一个轻量级的 Web 框架&#xff0c;使用 Python 语言编写&#xff0c;较其他同类型框架更为灵活、轻便且容易上手&#xff0c;小型团队在短时间内…

785. 判断二分图

785. 判断二分图 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;参考代码&#xff1a; 原题链接&#xff1a; 785. 判断二分图 https://leetcode.cn/problems/is-graph-bipartite/description/ 完成情况&#xff1a; 解题思路&#xff1a; 题目解释&#x…

清洁能源使用的社会发展意义

应用清洁能源是转变经济增加途径的有效手段&#xff0c;能够在减少污染物、降低企业经营成本的同时&#xff0c;提高企业经济效益和社会经济效益。 应用清洁能源是保护环境的最佳方式和必然选择&#xff0c;改变末端治理的现状&#xff0c;采取以预防为主的环境保护与发展理…

opencv/C++ 人脸检测

前言 本文使用的测试资源说明&#xff1a; opencv版本&#xff1a;opencv 4.6.0 人脸检测算法 Haar特征分类器 Haar特征分类器是一个XML文件&#xff0c;描述了人体各个部位的Haar特征值。包括&#xff1a;人脸、眼睛、鼻子、嘴等。 opencv 4.6.0自带的Haar特征分类器&…

护目镜佩戴检测识别算法

护目镜佩戴检测识别算法通过opencvpython网络深度学习模型&#xff0c;护目镜佩戴检测识别算法实时监测工人的护目镜佩戴情况&#xff0c;发现未佩戴或错误佩戴的情况&#xff0c;及时提醒调整。与C / C等语言相比&#xff0c;Python速度较慢。也就是说&#xff0c;Python可以使…

pyqt5-问答框

choice QMessageBox.question(self, Change Text?, Would you like to change the button text?,QMessageBox.Yes | QMessageBox.No, QMessageBox.No) 分别对应 1 父组件 2 问答框标题 3 问答框文字 4 问答框展示的按钮 5 问答框的默认按钮选择

Scikit-Learn 和深度学习怎么选择

大家好&#xff0c;今天我们要聊聊一个机器学习的话题&#xff1a;Scikit-Learn 和深度学习&#xff0c;到底哪一个更适合解决你的问题&#xff1f;我们先来看看这两种技术的异同点&#xff0c;然后再讲讲如何在实际问题中做出选择。 1. Scikit-Learn 与深度学习&#xff1a;谁…

JavaWeb优雅实现接口参数校验

目录 1 背景2 如何优雅地校验参数2.1 官方指导意见2.2 注解用法说明 3 ControllerAdvice同时配置过滤多个包3.1 springboot 多个RestControllerAdvice时的拦截顺序3.2 解决方法 1 背景 要对方法的参数进行校验&#xff0c;最简单暴力的写法是这个样子&#xff1a; public stati…

Linux centos7 bash编程(小练习)

一、打印九九乘法口诀 这一个for循环嵌套的小练习&#xff0c;难度不大。提供一种写法&#xff0c;供参考&#xff1a; #!/bin/bash # 文件名&#xff1a;99table.sh # 打印输出九九乘法口诀表 for i in {1..9} do for ((j1;j<$i;j)) do …