SpringBoot-日志配置

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: SpringBoot-日志配置

在这里插入图片描述

🍁博客主页:👉不会压弯的小飞侠
✨欢迎关注:👉点赞👍收藏⭐留言✒
✨系列专栏:👉SpringBoot专栏(每日更新)
✨如果觉得博主的文章还不错的话,请三连支持一下博主。
🔥欢迎大佬指正,一起学习!一起加油!

在这里插入图片描述


@TOC


🍁原始方式创建日志

Spring Boot默认情况下会用Logback来记录日志,并用INFO级别输出到控制台。在运行应用程序应该已经看到很多INFO级别的日志了。

✨方式一

🔥创建Log对象的类

package com.jkj.log;
import com.sun.org.slf4j.internal.Logger;
import com.sun.org.slf4j.internal.LoggerFactory;
public class BaseClass {
    //创建记录日志的对象
    private Class clazz;
    public static Logger log;
    public BaseClass(){
        clazz=this.getClass();
        log= LoggerFactory.getLogger(clazz);
    }
    
}

🔥继承这个类

package com.jkj.controller;
import com.jkj.log.BaseClass;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/bookLog")
public class BookController extends BaseClass {
   /* private static final Logger logger=LoggerFactory.getLogger(BookController.class);*/
    @GetMapping
    public String ById(){
        System.out.println("springboot_02 is running...");
        log.debug("debug...");
        log.info("info...");
        log.warn("warn...");
        log.error("error...");
        return "springboot_02 is running...";
    }
}

🔥测试
在这里插入图片描述

✨方式二

package com.jkj.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/bookLog")
public class BookController  {
  private static final Logger logger=LoggerFactory.getLogger(BookController.class);
    @GetMapping
    public String ById(){
        System.out.println("springboot_02 is running...");
        logger.debug("debug...");
        logger.info("info...");
        logger.warn("warn...");
        logger.error("error...");
        return "springboot_02 is running...";
    }
}

✨方式三

注解形式:使用lombok提供的注解@Slf4j可以简化开发,减少日志对象的声明操作。
🔥导入坐标

<dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
package com.jkj.controller;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/bookLog")
@Slf4j
public class BookController  {
    @GetMapping
    public String ById(){  
        System.out.println("springboot_02 is running...");    
        //注解
        log.debug("debug...");
        log.info("info...");
        log.warn("warn...");
        log.error("error...");
        return "springboot_02 is running...";
    }
}

✨日志级别

⭐⭐⭐注意:
以上三种方式运行出来的日志是没有debug的,需要在配置文件中设置日志输出级别:

#方式一
#开启debug模式,输出调试信息,常用于检查系统运行状况
#debug: true

#方式二(推荐使用)
#设置日志级别,root表示根节点,即整体应用日志级别

logging:
  level:
    root: debug

🔥 debug测试 在这里插入图片描述

🔥 info测试

logging:
  level:
    root: info

在这里插入图片描述

🔥 error测试

logging:
  level:
    root: error

在这里插入图片描述

🔥 warn测试

logging:
  level:
    root: warn

在这里插入图片描述

🔥日志级别

  • TRACE:运行堆栈信息,使用率低
  • DEBUG:程序员调试代码使用
  • INFO:记录运维过程数据
  • WARN:记录运维过程报警数据
  • ERROR:记录错误堆栈信息
  • FATAL:灾难信息,合并计入ERROR

🔥设置分组,对某个组设置日志级别

logging:
  group:
    ebank: com.jkj.controller
  level:
    root: info
    ebank: debug

测试:
在这里插入图片描述

🔥 设置某个包的日志级别

logging:
  group:
    ebank: com.jkj.controller
  level:
    root: info
    ebank: debug
    com.jkj.controller: debug

在这里插入图片描述
总结:

  • 日志用于记录开发调试与运维过程消息
  • 日志的级别共6种,通常使用4种即可,分别是DEBUG,INFO,WARN,ERROR
  • 可以通过日志组或代码包的形式进行日志显示级别的控制

🍁日志输出格式控制

✨日志介绍:

2022-07-14 15:12:31.580  INFO 11844 --- [           main] com.jkj.Springboot07LogApplication : Started Springboot07LogApplication in 2.754 seconds (JVM running for 4.14)
  • 时间 :2022-07-14 15:12:31.580
  • 级别 : INFO
  • PID :11844
  • 所属线程 : [ main]
  • 所属类/接口名 :com.jkj.Springboot07LogApplication
  • 日志信息 : : Started Springboot07LogApplication in 2.754 seconds (JVM running for 4.14)
  • PID:进程ID,用于表明当前操作所处的进程,当多服务同时记录日志时,该值可用于协助程序员调试程序
  • 所属类/接口名:当前显示信息为SpringBoot重写后的信息,名称过长时,简化包名书写为首字母,甚至直接删除

✨日志输出格式

logging:
  pattern:
    console: "%d - %m%n"
  • %d : 日期
  • %m : 消息
  • %n : 换行

✨ 日志文件详细配置

#设置日志模板格式
pattern:
#console: "%d - %m %n "
    console: "%d %c1r(%5p) --- [%16t] %clr(%-40.40c){cyan} : %m %n"
file:
name: server.log
logback:
    rollingpolicy:
        max-file-size: 4KB
        file-name-pattern: server.%d{yyyy-MM-dd}. %i.log
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2天前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
66 30
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
7天前
|
JSON Java 数据库
SpringBoot项目使用AOP及自定义注解保存操作日志
SpringBoot项目使用AOP及自定义注解保存操作日志
25 1
|
29天前
|
Java Maven Spring
SpringBoot日志整合
SpringBoot日志整合
18 2
|
1月前
|
网络协议 Linux Windows
Rsyslog配置不同端口收集不同设备日志
Rsyslog配置不同端口收集不同设备日志
|
1月前
|
开发工具 git
git显示开发日志+WinSW——将.exe文件注册为服务的一个工具+图床PicGo+kubeconfig 多个集群配置 如何切换
git显示开发日志+WinSW——将.exe文件注册为服务的一个工具+图床PicGo+kubeconfig 多个集群配置 如何切换
34 1
|
1月前
|
数据采集 监控 Java
SpringBoot日志全方位超详细手把手教程,零基础可学习 日志如何配置及SLF4J的使用......
本文是关于SpringBoot日志的详细教程,涵盖日志的定义、用途、SLF4J框架的使用、日志级别、持久化、文件分割及格式配置等内容。
87 0
SpringBoot日志全方位超详细手把手教程,零基础可学习 日志如何配置及SLF4J的使用......
|
29天前
|
SQL XML 监控
SpringBoot框架日志详解
本文详细介绍了日志系统的重要性及其在不同环境下的配置方法。日志用于记录系统运行时的问题,确保服务的可靠性。文章解释了各种日志级别(如 info、warn、error 等)的作用,并介绍了常用的日志框架如 SLF4J 和 Logback。此外,还说明了如何在 SpringBoot 中配置日志输出路径及日志级别,包括控制台输出与文件输出的具体设置方法。通过这些配置,开发者能够更好地管理和调试应用程序。
|
2月前
|
运维 NoSQL Java
SpringBoot接入轻量级分布式日志框架GrayLog技术分享
在当今的软件开发环境中,日志管理扮演着至关重要的角色,尤其是在微服务架构下,分布式日志的统一收集、分析和展示成为了开发者和运维人员必须面对的问题。GrayLog作为一个轻量级的分布式日志框架,以其简洁、高效和易部署的特性,逐渐受到广大开发者的青睐。本文将详细介绍如何在SpringBoot项目中接入GrayLog,以实现日志的集中管理和分析。
204 1
|
3月前
|
Java 应用服务中间件 HSF
Java应用结构规范问题之配置Logback以仅记录错误级别的日志到一个滚动文件中的问题如何解决
Java应用结构规范问题之配置Logback以仅记录错误级别的日志到一个滚动文件中的问题如何解决
|
3月前
|
Java 应用服务中间件 HSF
Java应用结构规范问题之配置Logback以在控制台输出日志的问题如何解决
Java应用结构规范问题之配置Logback以在控制台输出日志的问题如何解决