From 7f76cbb72f77fcebda61000dc6d7220a65a1e6be Mon Sep 17 00:00:00 2001 From: zhangyongzhangyong <2012005003@qq.coom> Date: Fri, 3 Jul 2020 15:29:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E5=85=B7=E7=B1=BB=EF=BC=9A=E5=8A=A8?= =?UTF-8?q?=E6=80=81=E8=AE=BE=E7=BD=AE=E6=97=A5=E5=BF=97=E7=BA=A7=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../log/controller/LogbackController.java | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/log/controller/LogbackController.java diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/log/controller/LogbackController.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/log/controller/LogbackController.java new file mode 100644 index 0000000000..6dc83f5f5a --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/log/controller/LogbackController.java @@ -0,0 +1,49 @@ +package com.epmet.commons.tools.log.controller; + +import ch.qos.logback.classic.LoggerContext; +import ch.qos.logback.classic.Logger; +import ch.qos.logback.classic.Level; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +/** + * logback日志级别动态切换 + * 请求路径 .../log/setlevel + * 根据参数(level、packageName),设置某一个包或者具体的某一个类的日志打印级别 + * @Auther: zhangyong + * @Date: 2020-07-03 11:09 + */ + +@RequestMapping("/log") +@RestController +public class LogbackController { + private org.slf4j.Logger log = LoggerFactory.getLogger(LogbackController.class); + + /** + * logback动态修改包名的日志级别 + * @param level 日志级别 + * @param packageName 包名 + * @return 当前的日志级别 + * @throws Exception + */ + @GetMapping("/setlevel") + public String updateLogbackLevel( @RequestParam(value="level") String level, + @RequestParam(value="packageName",defaultValue = "-1") String packageName) throws Exception { + LoggerContext loggerContext =(LoggerContext) LoggerFactory.getILoggerFactory(); + log.info("动态修改日志级别入参, 日志级别level:", level); + log.info("动态修改日志级别入参, 包名packageName:", packageName); + Logger logger= null; + if("-1".equals(packageName)) { + // 默认值-1,更改全局日志级别;否则按传递的包名或类名修改日志级别。 + logger= loggerContext.getLogger("root"); + } else { + logger= loggerContext.getLogger(packageName); + } + logger.setLevel(Level.toLevel(level)); + log.info("动态修改日志级别, 修改后, 当前的日志级别", String.valueOf(logger.getLevel())); + return String.valueOf(logger.getLevel()); + } +}