从零搭建开发脚手架 实现在线WebLog、动态修改日志级别

252 阅读1分钟

文章目录

背景

项目开发中,查看日志以及修改日志级别是很常用的操作。

一般的操作方式为:

不方便且操作很繁琐

看我实现的效果:

  • 在线weblog,可以输入任意位置的文件,支持决定路径以及相对路径
  • 动态设置日志级别,无需重置服务

实现

在线weblog

核心代码

  @RequestMapping(value = "/file", produces = "text/plain; charset=UTF-8")
    public Resource logFile(@RequestParam(required = false) String filePath) {
        if (StrUtil.isNotBlank(filePath)) {
            filePathConfig = filePath;
        }
        Resource logFileResource = new FileSystemResource(new File(filePathConfig));
        if (logFileResource == null || !logFileResource.isReadable()) {
            return null;
        }
        return logFileResource;
    }

动态修改日志级别

  @RequestMapping(value = "/level") //动态设置日志级别
    public String configureLogLevel(String name, LogLevel configuredLevel) {
        if (StrUtil.isBlank(name)) {
            return "请输入日志名称";
        }
        log.debug("name:{},level:{}", name, configuredLevel);
        log.info("name:{},level:{}", name, configuredLevel);
        log.warn("name:{},level:{}", name, configuredLevel);
        log.error("name:{},level:{}", name, configuredLevel);
        LoggerGroup group = this.loggerGroups.get(name);
        if (group != null && group.hasMembers()) {
            group.configureLogLevel(configuredLevel, this.loggingSystem::setLogLevel);
            return "ok";
        }
        this.loggingSystem.setLogLevel(name, configuredLevel);
        return "ok";
    }

本文参考spring-boot-starter-actuator中的日志相关接口实现功能

  • LogFileWebEndpoint,实现服务器端日志浏览
  • LoggersEndpoint,实现日志的级别查询以及动态设置

另推荐另一篇功能更强大的 不用安装Xshell、Xftp,即可远程操作服务器,看看黑科技Spring Boot 实现在线Web SSH


加群一起抱团取暖,共同进步

🍎QQ群【837324215】
🍎关注我的公众号【Java大厂面试官】,一起学习呗🍎🍎🍎

img