[spring]springboot日志

news2024/12/26 21:41:23

文章目录

  • 一. 日志的用途
  • 二. 打印日志
  • 三. 日志框架
    • 门面模式(外观模式)
    • SLF4J框架介绍
  • 四. 日志格式
    • 日志级别
    • 配置日志级别
    • 日志持久化
    • 配置日志文件分割
    • 配置日志格式
  • 五. 更简单的日志输出

一. 日志的用途

在这里插入图片描述
在这里插入图片描述

二. 打印日志

得到日志对象:
需要使用日志工厂LoggerFactory

@RestController
public class LoggerController {
    private static Logger logger = LoggerFactory.getLogger(LoggerController.class);

注意:Logger 对象是属于 org.slf4j 包下的

打印日志:
使用info()

    @RequestMapping("/logger")
    public String logger(){
        logger.info("---------打印日志---------");
        return "打印日志";
    }
}

在这里插入图片描述

三. 日志框架

在这里插入图片描述
SLF4J不同于其他⽇志框架, 它不是⼀个真正的⽇志实现, ⽽是⼀个抽象层, 对⽇志框架制定的⼀种规范,
标准, 接⼝. 所有SLF4J并不能独⽴使⽤, 需要和具体的⽇志框架配合使⽤

门面模式(外观模式)

SLF4J是⻔⾯模式的典型应⽤

⻔⾯模式定义
⻔⾯模式(Facade Pattern)⼜称为外观模式, 提供了⼀个统⼀的接⼝, ⽤来访问⼦系统中的⼀群接⼝, 其主要特征是定义了⼀个⾼层接⼝, 让⼦系统更容易使⽤
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

SLF4J框架介绍

SLF4J 就是其他⽇志框架的⻔⾯. SLF4J 可以理解为是提供⽇志服务的统⼀API接⼝, 并不涉及到具体的
⽇志逻辑实现

不引入日志门面:
在这里插入图片描述
在这里插入图片描述
引入日志门面:
在这里插入图片描述

四. 日志格式

在这里插入图片描述
在这里插入图片描述

日志级别

⽇志级别代表着⽇志信息对应问题的严重性, 为了更快的筛选符合⽬标的⽇志信息
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
结果发现, 只打印了info, warn和error级别的⽇志
这与⽇志级别的配置有关, ⽇志的输出级别默认是 info级别, 所以只会打印⼤于等于此级别的⽇志, 也就
是info, warn和error

配置日志级别

想要修改日志级别默认, 就需要进行配置日志级别

在这里插入图片描述
在这里插入图片描述
此时, 就把默认日志级别改成debug, 那么只会打印大于debug级别的日志
在这里插入图片描述
可以只修改某个类的日志级别
在这里插入图片描述

日志持久化

以上的⽇志都是输出在控制台上的, 然⽽在线上环境中, 我们需要把⽇志保存下来, 以便出现问题之后追溯问题. 把⽇志保存下来就叫持久化
日志持久化有两种方式:
在这里插入图片描述
**配置日志文件路径: **
在这里插入图片描述
在这里插入图片描述
默认文件名为spring.log, path不能设置文件名
配置日志文件名:
在这里插入图片描述
在这里插入图片描述
在这个文件中就保存着所有运行时候产生的日志
在这里插入图片描述
在name中可以设置绝对路径或相对路径
当name和path都存在时, 只有name生效

配置日志文件分割

如果我们的⽇志都放在⼀个⽂件中, 随着项⽬的运⾏, ⽇志⽂件会越来越⼤, 需要对⽇志⽂件进⾏分割
当然, ⽇志框架也帮我们考虑到了这⼀点, 所以如果不进⾏配置, 就⾛⾃动配置
默认⽇志⽂件超过10M就进⾏分割
在这里插入图片描述

那么我们也可以手动配置
在这里插入图片描述
日志文件超过1KB就分割
分割之后的日志文件名为: 日志名.日期.索引
在这里插入图片描述

配置日志格式

日志默认的打印格式是这样的
在这里插入图片描述

配置让idea支持控制台颜色显示:
在这里插入图片描述
添加: -Dspring.output.ansi.enabled=ALWAYS
在这里插入图片描述
在这里插入图片描述
我们也可以进行手动配置日志格式
在这里插入图片描述

  pattern:
    console: '%d{yyyy-MM-dd HH:mm:ss.SSS} %c %M %L [%thread] %m%n'
    file: '%d{yyyy-MM-dd HH:mm:ss.SSS} %c %M %L [%thread] %m%n'

在这里插入图片描述
在这里插入图片描述

五. 更简单的日志输出

每次都使⽤LoggerFactory.getLogger(xxx.class) 很繁琐,且每个类都添加⼀遍, lombok给我们提供了⼀种更简单的⽅式

  1. 添加lombok框架⽀持
  2. 使⽤ @slf4j 注解输出⽇志

在这里插入图片描述
在这里插入图片描述
lombok提供的 @Slf4j 会帮我们提供⼀个⽇志对象log,我们直接使⽤就可以

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

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

相关文章

统信服务器操作系统【qcow2 镜像空间扩容】方案

使用 qcow2 镜像安装系统,当默认安装系统存储空间不够用时,进行自定义扩容 文章目录 准备环境扩容步骤一、检查环境信息1.查看镜像信息2.查看镜像分区信息3.确认需要扩容的分区名二、扩容1.备份镜像2.创建新的镜像文件,并指定空间3.将系统扩容到新的镜像三、扩容 lvm 分区四…

OpenCV目标检测(1)模板匹配函数matchTemplate()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 将一个模板与重叠的图像区域进行比较。 该函数在图像中滑动,使用指定的方法将大小为 w h w \times h wh的重叠块与模板 templ 进行…

安全运维教程(非常详细)从零基础入门到精通,看完这一篇就够了_网络运维手册

一、安全运维-网络 1、IP地址相关 IP地址属于网络层地址,用于标识网络中的节点设备。 IP地址由32bit构成,每8bit一组,共占用4个字节。 IP地址由两部分组成,网络位和主机位。 IP地址分类: 类别网络位子网掩码私有地…

基于单片机的智能校园照明系统

由于校园用电量较大,本设计可以根据实际环境情况的改变,实现实时照明的控制。本设计以单片机芯片为控制芯片,热释电传感器采集教室中学生出入的信息,并把信息传递给单片机芯片,单片机芯片根据传感器传递过来的信息来控…

004_动手实现MLP(pytorch)

import torch from torch import nn from torch.nn import init import numpy as np import sys import d2lzh_pytorch as d2l # 1.数据预处理 mnist_train torchvision.datasets.FashionMNIST(root/Users/w/PycharmProjects/DeepLearning_with_LiMu/datasets/FashionMnist, t…

水印与标志检测系统源码分享

水印与标志检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer V…

深度解读数字化转型实施中的常见挑战与解决方案

为何深入理解数字化转型中的挑战至关重要? 数字化转型不仅仅是技术升级的过程,更是企业在面对市场变化、客户需求以及内部效率提升等多方面压力时,进行的系统性变革。然而,数字化转型并非一蹴而就,且在实际实施过程中…

app store预览和截屏最新要求6.9寸截屏,没真机的解决方案

IOS又升级了,最新的iphone 16,新出的iphone 16 pro max是6.9英寸的。 而app store的上架流程也随机更新了,不再需要之前的5.5寸屏截图,改为需要6.9寸屏的截图了 5.5寸那些老古董终于退出历史舞台 但是问题来了,现在…

电源设计的艺术:从底层逻辑到工程实践

在电子工程的世界里,电源设计是核心中的核心。它不仅是电子设备的能量源泉,更是整个系统稳定运行的基石。随着科技的不断进步,电源设计的要求也越来越高,从效率、稳定性到体积、成本,每一个维度都是工程师们不断追求的…

Linux相关概念和重要知识点(7)(git、冯诺依曼体系结构)

1.git (1)版本控制和版本控制器 当我们修改一个项目的时候,一般都会先留下一个备份再修改,并将修改的文件命名为第一次修改、第二次修改......当需要途中的任何版本,或是需要回退到之前的版本时,都能够找…

远程连接服务器时出现“这可能是由于CredSSP加密数据库修正”的错误提示的解决办法

现象: 当远程连接服务器时,有时候会出现以下提示,从而导致无法成功连接服务,如下所述: 原因: 远程桌面使用的是“凭据安全支持提供程序协议 (CredSSP) ”,这个协议在未修补的版本中是存在漏…

焊接缺陷检测系统源码分享

焊接缺陷检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

实现高效物联网通信:MQTT协议深入解析

MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,最初由IBM于1999年开发,目的是为了监控远程设备的传感器和嵌入式系统之间的通信。它的目标是提供一种简单、高效、可靠的消息传递机制,以满足低…

1.5 计算机网络的性能指标

参考:📕深入浅出计算机网络 目录 速率 带宽 吞吐量 时延 时延带宽积 往返时间 利用率 丢包率 速率 速率是指数据的传送速率(即每秒传送多少个比特),也称为数据率(Data Rate)或比特率&am…

【React与Vue】如何在页签中监听 LocalStorage 变化?这些方法你都试过吗?

在开发中,你是否会碰到过这样的需求:需要监听 LocalStorage 的变化。这在不同浏览器页签间是相对简单的,因为浏览器提供了内置的 storage 事件。但在同一个浏览器页签下,却没有直接的方式实现。今天,我们探讨下有几种高…

中电金信多模态鉴伪技术抵御AI造假威胁

AI换脸技术,属于深度伪造最常见方式之一,是一种利用人工智能生成逼真的虚假人脸图片或视频的技术。基于深度学习算法,可以将一个人的面部特征映射到另一个人的面部,创造出看似真实的伪造内容。近年来,以AI换脸为代表的…

关于Cursor使用的小白第一视角

最近看破局感觉洋哥总是提到cursor,感觉好火,所以打算学习一下怎么用Cursor,如果可以希望能做一个我自己的网站。 之前从来没用过Cursor。所以,这是一篇小白视角的Cursor使用教程。 如果你也是一个小白,并且对Cursor…

【Python】Spyder:科学 Python 开发环境

在数据科学和科学计算领域,Python 已经成为了一个不可或缺的工具。为了提高开发效率和改善编程体验,一个功能强大且用户友好的开发环境是必需的。Spyder(Scientific Python Development Environment)正是这样一个为科学计算和数据…

Redhat 7,8,9系(复刻系列) 一键部署Oracle19c rpm

Oracle19c前言 Oracle 19c 是甲骨文公司推出的一款企业级关系数据库管理系统,它带来了许多新的功能和改进,使得数据库管理更加高效、安全和可靠。以下是关于 Oracle 19c 的详细介绍: 主要新特性 多租户架构:支持多租户架构,允许多个独立的数据库实例在同一个物理服务器上…

网络PPP协议802.11协议以太网协议IPV4协议在思科模拟器的实现

1)PPP协议 1. 选择2620系列交换机,添加WIC-2t模块,具有两个serial串行接口; 2.Router>enable:进入特权模式 Router#configure terminal:全局配置模式 Enter configuration commands, one per line. End with CNTL…