国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沙河市| 蒙阴县| 漳州市| 旺苍县| 江陵县| 射洪县| 安图县| 武胜县| 长乐市| 平泉县| 无棣县| 黄冈市| 皮山县| 本溪| 友谊县| 武夷山市| 陆丰市| 河源市| 保定市| 定州市| 隆子县| 余干县| 威信县| 扶沟县| 平阳县| 井研县| 北辰区| 富锦市| 屯留县| 稷山县| 衡水市| 扎兰屯市| 四会市| 云林县| 梨树县| 甘孜| 塘沽区| 木兰县| 大姚县| 桦甸市| 东乡|