SpringBoot日志配置操作全面介绍

作者:执久呀 时间:2023-03-08 14:37:54 

日记基础操作

编程期调试代码

运营期记录信息

记录日常运营重要信息(峰值流量,平均响应时长...)

记录应用报错信息(错误堆栈)

记录运维过程数据(扩容、报警..)

创建的springboot工程中

package com.comtroller;
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("/logs")
public class LogController {
   //创建记录日志的对象
   private static  final Logger log= LoggerFactory.getLogger(LogController.class);
   @GetMapping
   public String test(){
      log.info("info..");
      log.debug("debug..");
      log.warn("warn..");
      log.error("error..");
       return "Logging ...";
   }

运行结果

SpringBoot日志配置操作全面介绍

SpringBoot日志配置操作全面介绍

可以看出来debug级别的日志默认是关闭的

要开启debug只需要在配置文件中加入

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

一般这样设置

设置日志级别,root表示根节点,即整体应用日志级别
logging:
  level:
    root: debug

SpringBoot日志配置操作全面介绍

debug加载的信息量非常的多

logging:
  level:
    root: warn

改成warn级别,只要警告信息和报错信息

SpringBoot日志配置操作全面介绍

设置包的级别

logging:
  level:
#    其余的日志为info级别
    root: info
#    设置com包下的为debug
    com: debug

SpringBoot日志配置操作全面介绍

设置日志分组

设置日志组,控制指定包对应的日志输出级别,也可以直接控指定包对应的日志输出级别

logging:
  group:
#    自定义组名,设置当前组中所包含的包
    kc_g1: com
#    设置日志级别
  level:
    root: warn
    kc_g1: debug

SpringBoot日志配置操作全面介绍

可以使用继承的方式,将配置的抽取出来,放到一个类中,这就不用书写

将这个放到一个类中所用的类去继承

//创建记录日志的对象
   private static  final Logger log= LoggerFactory.getLogger(LogController.class);

使用lombok中@Slf4j简化日志输出

pom.xml中引入lombok

<!--        lombok简化日志输出-->
       <dependency>
           <groupId>org.projectlombok</groupId>
           <artifactId>lombok</artifactId>
       </dependency>
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
//lombok简化日志
@Slf4j
@RestController
@RequestMapping("/logs")
public class LogController {
   @GetMapping
   public String test(){
      log.info("info..");
      log.debug("debug..");
      log.warn("warn..");
      log.error("error..");
       return "Logging ...";
   }
}

运行之后

SpringBoot日志配置操作全面介绍

日志输出格式控制

SpringBoot日志配置操作全面介绍

PID:进程id,用于表明当前操作所处的进程,当多服务同时记录日志时,这个值可以用来协助调试程序

所属类/接口:当前显示信息为SpringBoot重写后的信息,名称过长是,简化包名书写为首字母,甚至直接删除。

设置日志输出格式

logging:
  pattern:
    console: "%d %clr(%p) --- [%16t] %clr(%-40.40c){red} : %m %n"

%d:日期

%m:消息

%n:换行

%p: 进程号

%clr:设置颜色

%t:进程名

-40:左对齐40位

SpringBoot日志配置操作全面介绍

logging
  pattern:
    console: "%d - %m%n" 

SpringBoot日志配置操作全面介绍

文件记录日志

设置日志文件

logging:
  file:
    name: server.log

一启动服务器就会生成一个你指定名字的文件,但是服务器没关是没有内容的,还在缓冲区里

SpringBoot日志配置操作全面介绍

关闭服务器得到

SpringBoot日志配置操作全面介绍

日志文件详细配置

logging:
  file:
    name: server.log
  logback:
    rollingpolicy:
      max-file-size: 2KB
      file-name-pattern: server.%d{yyyy-MM-dd}.%i.log

自动生成对应的

SpringBoot日志配置操作全面介绍

注:SpringBoot2.4之后才能使用,否则无效果

来源:https://blog.csdn.net/weixin_60719453/article/details/127260265

标签:SpringBoot,日志,配置
0
投稿

猜你喜欢

  • Android编程实现拍照功能的2种方法分析

    2023-10-16 19:02:25
  • Mybatis-plus全局id生成策略详解

    2022-11-30 02:41:21
  • 深入理解Android热修复技术原理之so库热修复技术

    2023-11-19 15:02:10
  • RxJava+Retrofit实现网络请求封装的方法

    2023-08-13 19:39:13
  • HashMap 和 Hashtable的区别

    2022-11-01 06:34:47
  • 在多线程中调用winform窗体控件的实现方法

    2023-09-13 09:07:43
  • Android小程序实现选项菜单

    2022-04-12 00:34:01
  • Java中equalsIgnoreCase()方法的使用

    2022-07-28 15:13:45
  • Android进阶Handler应用线上卡顿监控详解

    2022-12-21 11:31:00
  • Android webveiw 出现栈错误解决办法

    2023-11-29 01:54:26
  • 在android中实现类似uc和墨迹天气的左右拖动效果

    2022-06-18 08:47:50
  • android 实现类似微信缓存和即时更新好友头像示例

    2023-12-04 20:47:41
  • init output stream初始化输出流源码分析

    2023-01-08 09:53:20
  • C# 抓取网页内容的方法

    2022-09-13 04:50:10
  • 解析Android框架之OkHttp3源码

    2022-12-05 16:28:02
  • Android编程之动态壁纸实例分析

    2023-02-23 07:05:15
  • SpringMVC Restful api接口实现的代码

    2023-11-29 12:34:27
  • 详解SpringBoot初始教程之Tomcat、Https配置以及Jetty优化

    2023-10-25 23:34:02
  • C#中的多线程多参数传递详解

    2023-08-02 22:23:46
  • C#实现骑士飞行棋

    2022-01-13 18:50:29
  • asp之家 软件编程 m.aspxhome.com