栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot 在线调整日志级别

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot 在线调整日志级别

WEB应用项目生产环境一般日志级别是ERROR级别,但有时候碰到有问题的时候想看一下DEBUG级别的日志,可能需要项目重启,单个项目还好说,像现在微服务的项目动不动就十几个服务根本无从下手,遂研发出在线变更日志级别功能;

1、要变更级别,先清除原来的级别以及LoggerContext对象

String[] LOGGER_NAME = new String[] {"root"};
        LoggerContext lc = (LoggerContext) StaticLoggerBinder.getSingleton().getLoggerFactory();
        //清除日志
        for (String logName : LOGGER_NAME) {
            ch.qos.logback.classic.Logger logger = lc.getLogger(logName);
            logger.detachAppender("CallLogAppender");
            logger.detachAndStopAllAppenders();
            logger.isAdditive();
        }

2、重新设置日志级别

//这里直接对root目录进行所有级别调整,当然也可以视情况写上自己的目录
String[] LOGGER_NAME = new String[] {"root"};
        if (!StringUtils.hasText(level)) {
            level = "";
        }
        level = level.trim();
        CallLogAppender ca = new CallLogAppender();
        ca.setContext(lc);
        ca.setName("CallLogAppender");
        PatternLayoutEncoder encoder = new PatternLayoutEncoder();
        encoder.setCharset(UTF_8);
        encoder.setPattern("%date %-5level %logger- %msg%n");
        encoder.setContext(lc);
        encoder.start();
        ca.setEncoder(encoder);
        ca.start();
        for (String logName : LOGGER_NAME) {
            Logger logger = lc.getLogger(logName);
            switch (level.toUpperCase()) {
                case "OFF":
                    logger.setLevel(Level.OFF);
                    break;
				......其它级别类似以上的写法
                default:
                    logger.setLevel(Level.ERROR);
                    break;
            }
            logger.addAppender(ca);
        }

3、application.properties日志级别配置

logging.level.root=debug
logging.level.org.apache=info
logging.level.sun.net=info
logging.level.com.alibaba=info

注意:设置root的目录,那么其它路径不要在application.properties进行配置级别,否则会出现调用接口无法变更级别问题;

把第一个方法封装到Controller中,在前台就能直接调用后台接口进行在线级别变更了,当然微服务应用很多,这个可以通过注册中心获取到所有实例进行遍历,这都是小问题了;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/736802.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号