[JAVAee]SpringBoot日志文件

2023-10-27

目录

日志的作用

SpringBoot中的日志

框架说明

日志对象的获取

日志的分类

日志的级别设置

日志的打印

日志的持久化


日志的作用

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

SpringBoot中的日志

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

框架说明

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

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

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

日志对象的获取

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

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

//Logger为slf4j
    private 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为slf4j
    private static Logger logger = LoggerFactory.getLogger(User.class);

    @PostConstruct
    public static void getLogger() {
        logger.error("救命啊这是个错误!");
        logger.info("啊啊啊啊");
        logger.trace("我是trace");
    }
}

方法二:

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

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

@Slf4j
public class Log {
    @PostConstruct
    public 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就会生成一个新的日志文件来存储日志. 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[JAVAee]SpringBoot日志文件 的相关文章

随机推荐

  • Nginx:配置worker进程的所属用户

    Nginx的配置文件 etc nginx nginx conf中定义了启动worker时的所属用户 全局块 user www data worker进程的所属用户 nginx默认设置为www data 但如果该用户配置的不正确 可能造成业务
  • 【Python 实战】---- 批量对图片添加不同水印

    1 需求 多水印 多图片 对图片和水印进行一一对应的批量添加 2 效果对比 加水印前和加水印后 3 开发思路 由于水印是多个 同时图片也是多个 所以考虑使用excel对他们进行配置 好一一对应 字体的获取 不同文字的字体不同 水印显示的位置
  • 常见的六大聚类算法

    1 K Means K均值 聚类 算法步骤 1 首先我们选择一些类 组 并随机初始化它们各自的中心点 中心点是与每个数据点向量长度相同的位置 这需要我们提前预知类的数量 即中心点的数量 2 计算每个数据点到中心点的距离 数据点距离哪个中心点
  • Kubernetes CKA考试和真题(中)

    前言 上一篇文章分享了CKA考试和前5个题目及其解答 这一篇继续分享6 10题 第六题 使用service暴露应用 题目 重新配置现有的deployment front end 以及添加名为http的端口规范来公开现有的容器nginx的端口
  • 深入剖析Vue源码 - 完整渲染过程

    继上一节内容 我们将Vue复杂的挂载流程通过图解流程 代码分析的方式简单梳理了一遍 其中也讲到了模板编译的大致流程 然而在挂载的核心处 我们并没有分析模板编译后函数如何渲染为可视化的DOM节点 这一节 我们将重新回到Vue实例挂载的最后一个
  • C语言程序设计博客作业04

    这个作业要求在哪里 https pintia cn problem sets 1595556701053566976 我在这个课程的目标是 了解函数 然后会运用函数 这个作业在那个具体方面帮助我实现目标 基础题然我了解了函数使用时的一些格式
  • 基于OpenCV简易检测硬币个数

    背景 在我们生活中常常需要我们用肉眼来计算某些物品的数量 如果通过人工操作会产生 效率低下 长时间的工作会导致眼睛疲劳导致错误的计算 为此 我们可以使用图像处理来检测方便我们 代码如下 include
  • buuctf-misc-ningen(另有解决kali2020无法开启共享文件夹解决方案)

    ningen 附件下载下来是一张jpg文件 先看看属性界面 猜测是压缩文件 使用winhex查看 确实为压缩文件 存在文本文件 binwalk foremost分离 中间一步报错的原因是output文件夹不为空 删除原有的output文件夹
  • Prometheus监控Linux主机(node-exporter)

    Prometheus监控Linux主机 Prometheus node exporter 监控Linux服务器 node export 主要用来做Linux服务器监控 比如服务器的进程数 消耗了多少 CPU 内存 磁盘空间 iops tcp
  • declaration of 'void* operator new [](size_t)' has a different exception specifier

    其实就是c 11和c 98的定义的坑 https stackoverflow com questions 39188919 different exception specifier with g 6 2 Are you using C 1
  • Linux之scp远程拷贝指令

    1 最近在往服务器上传文件 总是ssh登陆服务器后 在上传 这样很繁琐 网上找了找 发现可以用scp 远程拷贝 scp 命令参数 源文件 目的的路径 如 scp r local folder remote username remote i
  • 什么是熔断\降级

    熔断与降级 熔断降级是一种分布式系统的保护机制 用于应对服务不稳定或不可用的情况 熔断是指当某个服务的调用失败次数或异常比例达到一定阈值时 自动切断对该服务的调用 让请求快速失败 避免影响其他服务而导致雪崩效应 熔断后 一段时间内不再调用该
  • Java Frame Panel JFrame JPanel

    Frame 和 JFrame 默认的是BorderLayout布局 而 Panel 和 JPanel 默认的是 FlowLayout布局
  • 使用jxl解析Excel出现的问题

    jxl read biff BiffException Unable to recognize OLE stream at jxl read biff CompoundFile CompoundFile java 116 at jxl re
  • 【Unity】如何将3D模型呈现在2D平面上

    步骤 一 将2D平面所在Canvas的Render Mode改为Screen Space Camera 改成World Space也行 二 将Main Camera拖动到Render Camera处 三 调整3D模型的大小 2D平面和Mai
  • 基于Numpy构建全连接前馈神经网络进行手写数字识别

    文章目录 一 问题描述 二 设计简要描述 三 程序清单 四 结果分析 五 调试报告 六 实验小结 一 问题描述 不使用任何机器学习框架 仅仅通过Numpy库构建一个最简单的全连接前馈神经网络 并用该网络识别mnist提供的手写数字体 二 设
  • 2023年Java面试题_Redis

    Index Redis 基础 1 基本数据结构 1 1 String 字符串 1 1 1 底层结构 1 1 2 相关指令 1 2 List 列表 1 2 1 底层结构 1 2 2 相关指令 1 3 Hash 哈希 k v 1 3 1 底层结
  • 记一次流量攻击的处理方式

    我本人只是做程序开发的 只会一些基础的linux命令和处理 所以在网上找到了不少方案并且尝试 最终限制了本次的流量攻击 现总结起来 供各位参考 1 首先 我们需要统计一下ip连接数 找到请求过多的ip 将其进行封禁 查看代码如下 netst
  • 人工神经网络算法的学习率有什么作用

    神经网络的结构 例如2输入3隐节点1输出 建好后 一般就要求神经网络里的权值和阈值 现在一般求解权值和阈值 都是采用梯度下降之类的搜索算法 梯度下降法 牛顿法 列文伯格 马跨特法 狗腿法等等 这些算法会先初始化一个解 在这个解的基础上 确定
  • [JAVAee]SpringBoot日志文件

    目录 日志的作用 SpringBoot中的日志 框架说明 日志对象的获取 日志的分类 日志的级别设置 日志的打印 日志的持久化 日志的作用 日志可以帮助我们发现程序的问题并进行定位 日志还可以记录用户的登录信息 分析用户的意图 日志能记录程