Browse Source

调整修改日志级别日志

dev_shibei_match
jianjun 5 years ago
parent
commit
8d71e58971
  1. 38
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/log/controller/LogbackController.java

38
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/log/controller/LogbackController.java

@ -1,8 +1,8 @@
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 ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.LoggerContext;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.RestController;
* logback日志级别动态切换
* 请求路径 .../log/setlevel
* 根据参数(levelpackageName)设置某一个包或者具体的某一个类的日志打印级别
*
* @Auther: zhangyong
* @Date: 2020-07-03 11:09
*/
@ -23,27 +24,32 @@ public class LogbackController {
private org.slf4j.Logger log = LoggerFactory.getLogger(LogbackController.class);
/**
* logback动态修改包名的日志级别
* logback动态修改包名的日志级别 排查完问题记得改回原来的级别
*
* @param level 日志级别
* @param packageName 包名
* @return 当前的日志级别
* @throws Exception
* @param packageName 包名或类名
* @return 修改后的日志级别
*/
@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)) {
public String updateLogbackLevel(@RequestParam(value = "level") String level,
@RequestParam(value = "packageName", defaultValue = "-1") String packageName) {
try {
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
log.info("动态修改日志级别入参, 日志级别level:{},包名packageName:", level, packageName);
Logger logger = null;
if ("-1".equals(packageName)) {
// 默认值-1,更改全局日志级别;否则按传递的包名或类名修改日志级别。
logger= loggerContext.getLogger("root");
logger = loggerContext.getLogger("root");
} else {
logger= loggerContext.getLogger(packageName);
logger = loggerContext.getLogger(packageName);
}
Level preLevel = logger.getLevel();
logger.setLevel(Level.toLevel(level));
log.info("动态修改日志级别, 修改后, 当前的日志级别:" + String.valueOf(logger.getLevel()));
log.info("动态修改日志级别由【{}】 修改为【{}】", preLevel, logger.getLevel());
return String.valueOf(logger.getLevel());
} catch (Exception e) {
log.error("动态修改日志级别失败", e);
}
return null;
}
}

Loading…
Cancel
Save