【JavaEE】SpringBoot的日志

这篇具有很好参考价值的文章主要介绍了【JavaEE】SpringBoot的日志。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

日志作用

SpringBoot日志框架

日志打印

日志级别

类型

作用

修改级别

日志永久化

配置日志文件目录

配置日志文件名

简化日志打印和永久化——lombok


日志作用

  1. 问题定位:可以帮助开发人员快速找到问题出现的位置
  2. 系统监控:可以把系统的运行情况、性能调优等信息记录下来,方便系统监控和性能调优
  3. 记录历史:记录一些关键操作、异常情况,方便追溯问题根源
  4. 程序调试:记录日志来了解程序运行的情况,从而更方便的进行调试
  5. 安全审计:记录用户行为,找到恶意用户,以保证系统的安全性

SpringBoot日志框架

【JavaEE】SpringBoot的日志

日志门面:是一个抽象层,它提供了统一的日志接口,使应用程序能够按照一致的方式记录日志,而不需要关心具体的日志实现。在应用程序中使用日志门面接口编写代码,使得应用程序可以在运行时动态地切换具体的日志实现,而不需要修改代码。其中SpringBoot使用的是slf4j

日志实现:是实现了日志门面接口的具体日志框架,应用程序在运行时通过配置文件指定所需要的具体日志实现,日志门面就会调用相应的日志实现来记录日志信息。其中SpringBoot使用的是logback


日志打印

因为日志是为当前类服务的,所以使用private

因为static就可以让整个类共享该成员,而不用每创建一个实例就创建一个新的日志类;同时在多线程情况下,使用static就可以避免出现线程安全情况

使用final主要是为了日志对象被修改,从而保证日志的正确性和可靠性。

【JavaEE】SpringBoot的日志

package com.example.demo.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/test")
public class LogController {
    private static final Logger logger = LoggerFactory.getLogger(LogController.class);
    @RequestMapping("/log")
    public void testLog() {
        logger.trace("trace");
        logger.debug("debug");
        logger.info("info");
        logger.warn("warn");
        logger.error("error");
    }

}

登录localhost:9999/test/log 即可看到该日志。但是只显示了info warn error,这就与下面的日志级别有关系了。

使用LogController.class打印的日志

【JavaEE】SpringBoot的日志 【JavaEE】SpringBoot的日志

使用"LogController"打印的日志

【JavaEE】SpringBoot的日志


日志级别

类型

有小到大依次为:

  1. trace:调试代码时输出程序执行的详细信息
  2. debug:输出运行时的调试信息,帮助程序员定位到应用程序的问题
  3. info:输出一些重要的事件级别,比如程序启动、用户操作等。一般用于记录程序运行状态和关键操作的结果。INFO级别的日志通常会被用于监控应用程序的运行状态,以便及时发现和处理问题。
  4. warn:输出一些警告信息,表明系统出现了一些潜在的问题,但并不影响系统正常的运行。WARN级别的日志通常需要引起注意,但不需要立即采取行动,可以在相应的时候再进行处理。
  5. error:输出一些错误信息,表明系统出现了一些严重的问题,需要立即采取行动来解决。ERROR级别的日志通常用于记录系统崩溃、网络连接异常、SQL执行错误等严重的问题,对于保障系统的正常运行和及时发现问题非常重要。
  6. fatal:因为代码异常而导致程序退出的事件(不会出现在日志中)。

作用

  1. 控制日志输出的详细程度
    通过设置不同的日志级别,可以根据实际情况控制应用程序输出的日志内容的详细程度,避免输出过多或过少的日志。打印信息的时候只会打印设置当前日志级别和高于设置的日志。比如SpringBoot默认设置的是info,所以我们只能看到info、warn和error信息
  2. 帮助排查应用程序的问题
    在应用程序出现问题时,可以通过查看日志文件中相应级别的日志信息来定位问题所在,例如DEBUG级别的日志可以帮助我们追踪应用程序的执行过程,ERROR级别的日志可以帮助我们快速定位错误信息等。
  3. 提高性能
    日志输出是一项相对较为耗时的操作,设置合适的日志级别可以避免无谓的日志输出,提高应用程序的性能和效率。

修改级别

在配置文件中修改日志级别,现在来修改一下上一个程序的日志级别

logging:
  level:
    root: error
    com:
      example:
        demo:
          controller: trace  #把当前测试的包设置成最小的trace

【JavaEE】SpringBoot的日志


日志永久化

上述的日志只是打印在了控制台上,并没有记录到文件(持久化)当中,这显然是不科学的。把日志记录到文件中需要需要在配置文件中修改。

配置日志文件目录

logging:
  file:
    # \\ 防止被当成转移字符
    path: D:\\Test\\Log
  level:
    root: error
    com:
      example:
        demo:
          controller: trace

【JavaEE】SpringBoot的日志

配置日志文件名

logging:
  file:
    # \\ 防止被当成转移字符
    name: D:\\Test\\Log\\spring2.log
  level:
    root: error
    com:
      example:
        demo:
          controller: trace

【JavaEE】SpringBoot的日志


简化日志打印和永久化——lombok

输出日志的对象默认是log,这是slf4j中提供的对象。

package com.example.demo.controller;

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/testlombok")
@Slf4j
public class LogLombokController {
    @RequestMapping("/log")
    public void testLog() {
        log.trace("trace");
        log.debug("debug");
        log.info("info");
        log.warn("warn");
        log.error("error");
    }

}

【JavaEE】SpringBoot的日志

【JavaEE】SpringBoot的日志


有什么错误评论区指出。希望可以帮到你。 文章来源地址https://www.toymoban.com/news/detail-426398.html

到了这里,关于【JavaEE】SpringBoot的日志的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【JavaEE进阶】Bean 作用域和生命周期

    注意在此例子中需要用到lombok lombok是什么? Lombok 是一个 Java 库,它通过注解的方式来简化 Java 代码的编写。它提供了一组注解,让我们可以通过在代码中添加这些注解来自动生成样板式的代码,如 getter、setter、构造函数、toString 等。 使用 Lombok 可以有效地减少冗余的样板代

    2024年02月12日
    浏览(47)
  • JavaEE中的监听器的作用和工作原理

    在JavaEE(Java Platform, Enterprise Edition)中,监听器(Listener)是一种重要的组件,用于监听和响应Web应用程序中的事件。监听器的作用是在特定的事件发生时执行一些自定义的逻辑。常见的监听器包括ServletContext监听器、HttpSession监听器和ServletRequest监听器。以下是监听器的作用

    2024年01月22日
    浏览(42)
  • javaee jsp页面 九大内置对象和四大作用域

    九大内置对象四大域 一、四大域 域对象的作用:保存数据,获取数据,共享数据 作用域从小到大为:PageContext(jsp页面),ServletRequest(一次请求),HttpSession(一次会话),ServletContext(整个web应用)。 第一个作用域是page,他只在当前页面有效,也就是用户请求的页面有效,当

    2024年02月16日
    浏览(32)
  • JavaSE、JavaEE、JavaWeb 三大工程目录详解

    本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注博主!也许一个人独行,可以走的很快,但是一群人结伴而行,才能走的更远! JavaSE、JavaEE 和 JavaWeb 是 Java 开发中的三个重要框架,它们都是为了支持 Java 应用程序的开发而设计

    2023年04月09日
    浏览(38)
  • 【JavaEE】Spring Boot - 日志文件

    【JavaEE】Spring Boot 开发要点总结(3) 写代码不是概率事件,bug的出现必然是有原因的,而日志的主要作用就是,排查和定位问题! 而日志的生成就是随着程序的进行和一步步生成的,不说全部过程都记录得清清楚楚,至少重要的点和环节或者一些异常情况都有记录 而通过日

    2024年02月14日
    浏览(50)
  • JAVAEE之Spring Boot日志

    ⽇志对我们来说并不陌生, 从JavaSE部分, 我们就在使用 System.out.print 来打印日志了. 通过打印日志来发现和定位问题, 或者根据日志来分析程序的运行过程. 在Spring的学习中, 也经常根据控制台的日志来分析和定位问题. 随着项⽬的复杂度提升, 我们对日志的打印也有了更高的需求

    2024年04月11日
    浏览(36)
  • 【JavaEE】文件操作和IO-目录扫描全文检索小程序

    不知道说啥了,看看吧 在之前的学习中,基本上都是围绕内存展开的~ MySQL 主要是操作硬盘的 文件IO也是是操作硬盘的~ IO : i nput o utput 创造文件,删除文件,重命名文件,创建目录······ 一些操作没有权限也做不了~ 1.1 路径 就是我们的文件系统上的一个文件/ 目录 的具

    2024年02月09日
    浏览(41)
  • JavaEE & 文件操作和IO & 目录扫描全文检索小程序

    不知道说啥了,看看吧 在之前的学习中,基本上都是围绕内存展开的~ MySQL 主要是操作硬盘的 文件IO也是是操作硬盘的~ IO : i nput o utput 创造文件,删除文件,重命名文件,创建目录······ 一些操作没有权限也做不了~ 1.1 路径 就是我们的文件系统上的一个文件/ 目录 的具

    2023年04月09日
    浏览(38)
  • linux下sys目录与proc目录的作用

    在Linux系统中,/sys目录是一个特殊的虚拟文件系统(sysfs),用于提供对内核和设备的运行时信息的访问。它是在内核中运行的驱动程序和子系统的接口,可以用于获取和配置系统的硬件和内核信息。 以下是/sys目录的一些主要作用: 设备和驱动程序信息:/sys目录提供了与设

    2024年02月04日
    浏览(59)
  • 【JavaEE】深入了解Spring中Bean的可见范围(作用域)以及前世今生(生命周期)

    【JavaEE】Spring的开发要点总结(4) 在学习Spring中,Bean是最核心的操作资源 使用学习Bean对象是一个重点,我们已经知道如何存储它,获取它,现在我们要知道: 它的作用域,我们才可以知道怎么使用,才能得心应手,符合预期~ 它的生命周期,我们才能更加清楚的了解它的

    2024年02月14日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包