springboot工程运行时动态改变logj4j2日志级别
@ApiOperation("更新日志level")
@GetMapping("/update-log")
public JsonResult<String> updateLogLevel()
{
LoggerContext loggerContext = LoggerContext.getContext(false);
LoggerConfig loggerConfig = loggerContext.getConfiguration().getRootLogger();
Level now = loggerConfig.getLevel();
// 600 -> 0
int init = now.getStandardLevel().intLevel();
int next = (init <= 0 ? 600 : init - 100);
StandardLevel sl = StandardLevel.getStandardLevel(next);
Level level = Level.toLevel(sl.name());
System.out.println("TRACE(600), DEBUG(500), INFO(400), WARN(300), ERROR(200), FATAL(100), OFF(0) => " + level);
loggerConfig.setLevel(level);
loggerContext.updateLoggers();
return JsonResult.success("系統当前日志级别:" + level.name());
}