SpringBoot Logback修改日志级别

 1. 在application.yml 通过配置配置,按住Ctrl + 左键可以看源码

logging:
  level:
    root: info
    com.dj.test.controller: debug
    com.dj.test.service: debug

2. 自己写接口直接动态修改日志级别,读取application.yml配置文件算是间接修改

package com.dj.springtest.controller;

import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.LoggerContext;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Arrays;
import java.util.List;

/**
 * Date: 2024/1/13
 * Time: 22:02
 * Description: No Description
 */
@RestController
public class LogController {

    private static final List<String> LEVELS = Arrays.asList("ALL", "all", "TRACE", "trace", "DEBUG", "debug", "INFO", "info", "WARN", "warn", "ERROR", "error", "OFF", "off");

    /**
     * 设置日志界级别
     *
     * @param overall     全局设置
     * @param part        部分设置
     * @param packagePath 涵盖包,如果有多个path,请使用英文逗号分隔
     */
    @GetMapping("/log/level")
    public String setLogLevel(String overall, String part, String packagePath) {
        LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
        if (StringUtils.isNotBlank(overall) && LEVELS.contains(overall)) {
            Logger rootLogger = loggerContext.getLogger("root");
            rootLogger.setLevel(Level.toLevel(overall));
        }

        //根据包路径进行设置
        if (StringUtils.isNotBlank(part) && LEVELS.contains(part) && StringUtils.isNotBlank(packagePath)) {
            String[] paths = packagePath.split(",");
            for (String path : paths) {
                Logger pathLogger = loggerContext.getLogger(path);
                pathLogger.setLevel(Level.toLevel(part));
            }
        }

        return "Succeeded in changing the log level";
    }

}

 

相关推荐

  1. SpringBoot Logback修改日志级别

    2024-01-16 23:38:01       64 阅读
  2. 在Spring Boo动态修改日志级别

    2024-01-16 23:38:01       40 阅读
  3. log4j2启动异步日志与动态修改日志级别

    2024-01-16 23:38:01       24 阅读
  4. 深入理解Nginx日志级别

    2024-01-16 23:38:01       39 阅读
  5. Log4j日志级别介绍

    2024-01-16 23:38:01       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-16 23:38:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-16 23:38:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-16 23:38:01       82 阅读
  4. Python语言-面向对象

    2024-01-16 23:38:01       91 阅读

热门阅读

  1. 边缘计算在DCIM系统中的应用

    2024-01-16 23:38:01       51 阅读
  2. Effective Objective-C学习第一周

    2024-01-16 23:38:01       50 阅读
  3. 二分查找&删除元素

    2024-01-16 23:38:01       49 阅读
  4. 设计模式——桥接模式

    2024-01-16 23:38:01       55 阅读
  5. leetcode-平衡二叉树

    2024-01-16 23:38:01       52 阅读
  6. 代码随想录day29 回溯开始进入排列问题

    2024-01-16 23:38:01       51 阅读
  7. Python从入门到精通秘籍五

    2024-01-16 23:38:01       62 阅读
  8. c++关键字const

    2024-01-16 23:38:01       50 阅读
  9. 如何在 Edge 浏览器中设置自动刷新?

    2024-01-16 23:38:01       132 阅读
  10. Edge 浏览器设置自动刷新

    2024-01-16 23:38:01       51 阅读