@RequestMapping(value = "/global/logLevel/{logLevel}", method = RequestMethod.GET)
public ApiResponse changeLogLevel(@ApiParam(name = "logLevel", value = "日志级别", example = "[debug,info,warn,error]") @PathVariable("logLevel") String logLevel) {
JSONObject result = new JSONObject();
try {
//方法一:
// LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
// Logger logger = loggerContext.getLogger("root");
// ((ch.qos.logback.classic.Logger) logger).setLevel(Level.valueOf(logLevel));
//方法二:
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
loggerContext.getLogger("org.mybatis").setLevel(Level.valueOf(logLevel));
loggerContext.getLogger("org.springframework").setLevel(Level.valueOf(logLevel));
loggerContext.getLogger("com.picchealth.eshop").setLevel(Level.valueOf(logLevel));
loggerContext.getLogger("org.quartz").setLevel(Level.valueOf(logLevel));
} catch (Exception e) {
logger.error("动态修改日志级别出错", e);
result.put("status", "动态修改日志级别出错");
return ApiResponse.ok(result.toJSONString());
}
result.put("logLevel", logLevel);
return ApiResponse.ok(result.toJSONString());
}