返回顶部
首页 > 资讯 > 后端开发 > JAVA >【Java】Spring Boot 日志文件
  • 206
分享到

【Java】Spring Boot 日志文件

javaspringbootspring 2023-09-23 13:09:05 206人浏览 薄情痞子
摘要

文章目录 SpringBoot日志文件1. 日志有什么用2. 日志怎么用3. 自定义日志打印3.1 在程序中得到日志对象3.2 使用日志对象打印日志 4. 日志级别4.1 日志级别有什么

文章目录

SpringBoot日志文件

1. 日志有什么用

日志是程序的重要组成部分,想象一下,如果程序报错了,不让你打开控制台看日志,那么你能找到报错的原因吗。

日志对于我们来说,最主要的用途就是排除和定位问题。除了发现和定位问题之外,我们还可以通过日志实现以下功能:

  • 记录用户登录日志,方便分析用户是正常登录,还是恶意破解用户
  • 记录系统的操作日志,方便数据恢复和定位操作人
  • 记录程序的执行时间,方便以后优化程序提供数据支持

2. 日志怎么用

Spring Boot项目在启动的时候默认就会有日志的输出,如下图:

在这里插入图片描述

通过上述信息我们可以发现:

  • spring Boot内置了日志框架
  • 默认情况下,输出的日志并不是开发者定义和打印的,那么开发者怎么在程序中定义打印日志?
  • 日志默认是打印在控制台上,而控制台的日志是不能被保存的, 如何将日志永久的保存下来?

3. 自定义日志打印

开发者自定义打印日志的实现步骤:

  1. 在程序中得到日志
  2. 使用日志对象的相关语法输出要打印的内容

3.1 在程序中得到日志对象

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

日志工厂需要将每个类的类型传进去,这样我们才能知道日志的归属类,才能更方便更直观的定位到问题

注意:logger对象属于org.slf4j包下的,不要导错了
在这里插入图片描述

3.2 使用日志对象打印日志

日志对象的打印方法有很多种,我们可以使用info方法来输出日志,

@Controller@ResponseBodypublic class UserController {    private static final Logger log = LoggerFactory.getLogger(UserController.class);    @RequestMapping("/sayhi")    public void sayHi() {        log.trace("trace");        log.debug("debug");        log.info("info");        log.warn("warn");        log.error("error");    }}

在这里插入图片描述

4. 日志级别

4.1 日志级别有什么用?

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

4.2 日志级别的分类与使用

日志级别分为:

  • trace: 微量,少许的意思,级别最低
  • debug:需要调试时候的关键信息打印
  • info:普通的打印信息(默认日志级别)
  • warn:警告:不影响使用,但需要注意的问题
  • error:错误信息,级别较高的错误日志信息
  • fatal:致命的,因为代码异常导致程序退出执行的事件

日志级别的顺序:
在这里插入图片描述

越往上,接收到的信息就越少,如设置了warn就只能接收到warn及其上面的级别

日志级别设置

logging:  level:    root: error

默认日志输出级别

清除掉配置文件当中的日志设置,观察控制台输出的日志级别

得到结论,日志输出级别默认是info

当存在局部日志级别和全局日志级别设置,那么当访问局部日志时,使用的是局部日志级别。也就是局部日志优先级高于全局日志的优先级

5. 日志持久化

以上的日志都是输出在控制台上,然而生产环境上咱们需要将日志保存下来,以便出现问题之后追溯问题,把日志保存下来的过程叫做持久化

想要将日至持久化,只需要在配置文件中指定日志的存储目录或者是指定日志保存文件名,Spring Boot就会将控制台的日志写到相应的目录或文件下

配置日志文件的保存路径:

logging:  file:    path: D:\rizhi

保存的路径,当中包含转义字符方面的设置我们可以使用这个/来作为分割符。

如果坚持使用windows下的分割符,我们需要使用\转义字符来转义一下

配置日志文件的文件名:

logging:  file:    name: D:/rizhi/logger/spring.log

6. 更简单的日志输出–lombok

每次使用LoggerFactory.getLogger很繁琐,且每个类都添加一遍,也很麻烦。这里的lombok是一种更好的日志输出方式

  1. 添加lombok框架支持
  2. 使用@slf4j注解输出日志

6.1 添加 lombok 依赖

首先要安装一个插件在这里插入图片描述

然后再pom.xml页面右键、在这里插入图片描述在这里插入图片描述
在这里插入图片描述

最后重新添加依赖就可以了
在这里插入图片描述

6.2 输出日志

使用@Slf4j注解,在程序中使用log对象即可输入日志并且只能使用log对象才能输出,这是lombok提供的对象名

6.3 lombok原理解释

lombok 能够打印⽇志的密码就在 target ⽬录⾥⾯,target 为项⽬最终执⾏的代码,查看 target ⽬录我们可以发现:

在这里插入图片描述

这里的@Slf4j注解变成了一个对象。

下面是java程序的运行原理:

在这里插入图片描述

6.4 lombok更多注解说明

基本注解

注解作用
@Getter自动添加get方法
@Setter自动添加set方法
@ToString自动添加toString方法
@EqualsAndHashCode自动添加equals和hasCode方法
@NoArgsConstructor自动添加无参构造方法
@AllArgsConstructor自动添加全属性构造方法,顺序按照属性的定义顺序
@NonNull属性不能为null
@RequiredArgsConstructor自动添加必须属性的构造方法,final + @NonNull的属性为需

组合注解:

注解作用
@Data@Getter+@Setter+EqualsAndHashCode+@RequiredArgsConstructor+@NoArgsConstructor

日志注解

注解作用
@Slf4j添加一个名为log的对象

7. 总结

日志是程序员中的重要组成部分,使用日志可以快速的发现和定位问题,Spring Boot提供了日志框架,默认情况下使用的是info日志级别将日志输出到控制台的。我们可以通过lombok提供的@Slf4j注解和log对象快速的打印自定义日志,日志包含了6个级别:

  • trace:微量,少许的意思,级别最低
  • debug:需要调试的时候的关键信息打印
  • info:普通的打印信息
  • warn:警告,不影响使用,但需要注意的问题
  • error:错误信息,级别较高的错误日志信息
  • fatal:致命的,因为代码异常导致程序退出执行的事件

日志级别依次提升,而日志级别越高,收到的日志信息也就越少,我们可以通过配置日志的保存域名或保存目录来将日志永久的保存下来

来源地址:https://blog.csdn.net/qq_63474430/article/details/129287107

--结束END--

本文标题: 【Java】Spring Boot 日志文件

本文链接: https://lsjlt.com/news/416471.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 【Java】Spring Boot 日志文件
    文章目录 SpringBoot日志文件1. 日志有什么用2. 日志怎么用3. 自定义日志打印3.1 在程序中得到日志对象3.2 使用日志对象打印日志 4. 日志级别4.1 日志级别有什么...
    99+
    2023-09-23
    java spring boot spring
  • 一文掌握Spring Boot 日志文件
    目录SpringBoot日志文件1. 日志有什么用2. 日志怎么用3. 自定义日志打印3.1 在程序中得到日志对象3.2 使用日志对象打印日志4. 日志级别4.1 日志级别有什么用?...
    99+
    2023-03-06
    Spring Boot 日志文件 Spring Boot 日志
  • Spring Boot如何使用logback、logstash、ELK记录日志文件
    这篇文章主要介绍Spring Boot如何使用logback、logstash、ELK记录日志文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Spring Boot 下,尝试使用 log4j 记录日志到 logst...
    99+
    2023-05-30
    logback logstash spring
  • spring boot自定义log4j2日志文件的实例讲解
    背景:因为从 spring boot 1.4开始的版本就要用log4j2 了,支持的格式有json和xml两种格式,此次实践主要使用的是xml的格式定义日志说明。spring boot 1.5.8.RELEASE 引入log4j2的开发步骤...
    99+
    2023-05-30
    spring boot 自定义
  • spring boot 日志配置详解
    最近在学习spring boot框架的路上,今日看了一下spring boot日志配置,顺便留个笔记记录一下。新建logback.xml文件 内容如下:<!-- Logback configuration. See http...
    99+
    2023-05-31
    spring boot 日志
  • 如何利用 Python 脚本解析 Spring Boot 项目的日志文件?
    Spring Boot 是一种流行的 Java 应用程序框架,它的日志文件可以提供有关应用程序行为和错误的重要信息。但是,解析这些日志文件可能很困难,特别是当日志文件很大或需要长时间监视时。在本文中,我们将介绍如何使用 Python 脚本解...
    99+
    2023-09-04
    文件 关键字 spring
  • Spring Boot Actuator管理日志的实现
    为了解决以下两个问题: 1、单JAR包应用查看日志需要的时候如果需要远程访问服务器登录查看日志,那样相对比较麻烦 2、生产环境为了解决BUG需要临时更换日志级别,总不能重启服务来解决...
    99+
    2024-04-02
  • Spring Boot如何使用AOP记录日志
    小编给大家分享一下Spring Boot如何使用AOP记录日志,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在项目开发中经常,日...
    99+
    2024-04-02
  • Spring Boot Actuator管理日志如何实现
    这篇文章主要介绍“Spring Boot Actuator管理日志如何实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Spring Boot Actuato...
    99+
    2023-07-02
  • Spring Boot日志控制的示例分析
    这篇文章将为大家详细讲解有关Spring Boot日志控制的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Spring Boot对日志的处理,和我们平时的日志处理完全一致,通过logback.xm...
    99+
    2023-05-30
    springboot
  • 详解Spring Boot实现日志记录 SLF4J
    在开发中打印内容,使用 System.out.println() 和 Log4j 应当是人人皆知的方法了。 其实在开发中我们不建议使用 System.out 因为大量的使用 System.out 会增加资源的消耗。 而Log4j 更为灵活在...
    99+
    2023-05-31
    spring boot slf4j
  • 使用Spring Boot如何对日志进行配置
    这篇文章给大家介绍使用Spring Boot如何对日志进行配置,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。默认日志 Logback :默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输...
    99+
    2023-05-31
    springboot spring boo
  • Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
    依赖 <dependency> <groupId>log4j</groupId> <a...
    99+
    2024-04-02
  • spring boot Slf4j日志框架的体系结构详解
    目录前言一、五花八门的日志工具包1.1. 日志框架1.2.日志门面1.3日志门面存在的意义二、日志框架选型三、日志级别四、常见术语概念解析总结前言 刚刚接触到java log日志的同...
    99+
    2024-04-02
  • 基于Spring Boot的Logback日志轮转配置详解
    在生产环境下,日志是最好的问题调试和跟踪方法,因此日志的地位是十分重要的。我们平时经常使用的log4j,slf4j,logback等等,他们的配置上大同小异。这里就结合Spring Boot配置一下Logback的日志。默认最简单的配置默认...
    99+
    2023-05-31
    springboot logback 日志
  • Spring Boot整合ELK实现日志采集与监控
    目录Spring Boot整合ELK实现日志采集与监控前言架构图示ELK搭建Spring Boot工程配置验证查看logstash是否接收到日志查看索引是否已经生效日志分析结语Spr...
    99+
    2024-04-02
  • 老生常谈spring boot 1.5.4 日志管理(必看篇)
    spring boot日志默认采用logback进行输出,你可以对logback进行定制化,方法如下:在resources文件夹下建立logback.xml配置文件<?xml version="1.0" encoding="U...
    99+
    2023-05-31
    springboot 日志管理
  • 在spring boot项目中如何配置日志管理
    这篇文章将为大家详细讲解有关在spring boot项目中如何配置日志管理,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。spring Boot在所有内部日志中使用Commons Loggin...
    99+
    2023-05-31
    springboot 目中 日志
  • Spring boot如何操作文件
    小编给大家分享一下Spring boot如何操作文件,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、获取文件路径获取文件路径1、class.getResource(path)其中的参数path有两种形式,一种是以“/”开...
    99+
    2023-06-25
  • java Logback输出日志内容到文件
    要将logger.info的信息输出到文件,您可以使用Logback配置。下面是一个简单的示例: 1.首先,在您的项目中添加Logback依赖,例如在Maven项目中的pom.xml文件中添加以下代码...
    99+
    2023-09-11
    java logback 开发语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作