国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

Logback動態修改日志級別的方法

2024-07-14 08:42:55
字體:
來源:轉載
供稿:網友

問題提出:

一般在生產環境上,日志的級別是INFO以上,但有時候程序出現問題(如SQL報錯),少量日志不能盡快定位問題,這時候可以動態修改日志級別到DEBUG,打印更多日志后可以快速定位到問題。

解決方法:

定義動態修改日志級別的接口:這種方法的好處是不用修改配置文件,排錯后再次調用接口把日志級別修改回去;壞處是需要在代碼中寫死指定哪些包要修改日志級別。示例代碼如下:

@RestControllerpublic 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";  }}

修改logback.xml配置文件:在configuration根節點配置屬性scan和scanPeriod,scan為true時,配置文件被修改會被重新加載,scanPeriod定義了掃描文件變化的周期,默認6000毫秒,即一分鐘。這種做法的好處是不用自己寫修改日志級別的邏輯;壞處是要手動更改配置文件,排錯完成后需改回原來的配置。示例配置如下:

<?xml version="1.0" encoding="UTF-8" ?><configuration scan="true" scanPeriod="6000">  <property name="LOG_HOME" value="/export/logs/cmdb/" />  <property name="APP_NAME" value="cmdb" />  <property name="LOG_FILE_EXPIRE_TIME" value="180" />  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">    <encoder>      <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} | ${APP_NAME} - %p | %thread | %c | line:%L - %m%n</pattern>    </encoder>  </appender>  <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">      <fileNamePattern>${LOG_HOME}${APP_NAME}.%d{yyyy-MM-dd}.log</fileNamePattern>      <maxHistory>${LOG_FILE_EXPIRE_TIME}</maxHistory>    </rollingPolicy>    <encoder>      <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} | ${APP_NAME} - %p | %thread | %c | line:%L - %m%n</pattern>    </encoder>  </appender>  <root>    <level value="INFO" />    <appender-ref ref="STDOUT" />    <appender-ref ref="FILE" />  </root></configuration>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 双鸭山市| 霞浦县| 鹤壁市| 安国市| 嘉峪关市| 互助| 莆田市| 门源| 威宁| 磴口县| 隆昌县| 龙南县| 伊川县| 图木舒克市| 炉霍县| 桂平市| 谷城县| 泰和县| 东城区| 墨竹工卡县| 甘谷县| 汝城县| 西充县| 肥乡县| 惠州市| 涟水县| 永德县| 准格尔旗| 象州县| 吉木萨尔县| 泉州市| 蒙自县| 惠水县| 宁夏| 会东县| 九龙县| 沧州市| 丹寨县| 邯郸县| 广丰县| 怀安县|