方案一 :通过jsconsole动态修改日志级别
1.logback.xml configuration 标签里面 新增<jmxConfigurator />
<configuration >
<jmxConfigurator />
</configuration>
2.启动 jconsole,连接应用,具体怎么连自行百度
3.选择Mbean 找到 ch.qos.logback.classic.default目录下的类ch.qos.logback.classic.jmx.JMXConfigurator
4.选择操作,选择setLoggerLevel,输入参数,第一个是loggerName,第二个是loggerLevel,点击按钮
5.查看控制台,具体日志自行查看
方案二:动态态修改日志配置文件
修改logback.xml配置文件:在configuration根节点配置属性scan和scanPeriod,scan为true时,配置文件被修改会被重新加载,scanPeriod定义了扫描文件变化的周期,默认60000毫秒,即一分钟。这种做法的好处是不用自己写修改日志级别的逻辑;坏处是要手动更改配置文件,排错完成后需改回原来的配置。
<configuration scan="true" scanPeriod="60000">
</configuration>
方案三:自定义接口修改日志级别
定义动态修改日志级别的接口:这种方法的好处是不用修改配置文件,排错后再次调用接口把日志级别修改回去;坏处是需要在代码中写死指定哪些包要修改日志级别
@RestController
public class LogController {
private static Logger logger = LoggerFactory.getLogger(LogController.class);
@RequestMapping(value = "logLevel/{logLevel}")
public String changeLogLevel(@PathVariable("logLevel") String logLevel) {
try {
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
loggerContext.getLogger("org.mybatis").setLevel(Level.valueOf(logLevel));
loggerContext.getLogger("org.springframework").setLevel(Level.valueOf(logLevel));
} catch (Exception e) {
logger.error("动态修改日志级别出错", e);
return "fail";
}
return "success";
}
}