使用arthas在線調(diào)整日志級別

線上服務(wù)器出現(xiàn)問題,需要臨時(shí)調(diào)整日志級別,明確定位問題。傳統(tǒng)的方法是修改日志配置文件logback-spring.xml,然后重啟,這樣比較慢,而且也可能漏掉因?yàn)橹貑?,?dǎo)致問題無法立馬復(fù)現(xiàn)。 使用arthas可以不影響服務(wù)運(yùn)行的情況下,動態(tài)調(diào)整日志級別

日志命令用法

  • 常用用法
logger [-c <value>] [--classLoaderClass <value>] [-h] [--include-no-appender] [-l <value>] [-n <value>]
-c 類加載器hashcode
--classLoaderClass 類加載器
-l 設(shè)置的日志級別,比如debug、info
-n 日志名字,默認(rèn)是ROOT
  • 幫助命令
[arthas@5345]$ logger -h
 USAGE:
   logger [-c <value>] [--classLoaderClass <value>] [-h] [--include-no-appender] [-l <value>] [-n <value>]

 SUMMARY:
   Print logger info, and update the logger level

 Examples:
   logger
   logger -c 327a647b
   logger -c 327a647b --name ROOT --level debug
   logger --include-no-appender

 WIKI:
   https://arthas.aliyun.com/doc/logger

 OPTIONS:
 -c, --classloader <value>                               classLoader hashcode, if no value is set, default value is SystemClassLoader
     --classLoaderClass <value>                          The class name of the special class's classLoader.
 -h, --help                                              this help
     --include-no-appender                               include the loggers which don't have appenders, default value false
 -l, --level <value>                                     set logger level
 -n, --name <value>                                      logger name

獲取日志信息

[arthas@5345]$ logger info -n ROOT
 name                        ROOT
 class                       ch.qos.logback.classic.Logger
 classLoader                 org.springframework.boot.loader.LaunchedURLClassLoader@433c675d
 classLoaderHash             433c675d
 level                       DEBUG
 effectiveLevel              DEBUG
 additivity                  true
 codeSource                  jar:file:/data/worker/student-center/student-center.jar!/BOOT-INF/lib/logback-classic-1.2.11.jar!/
 appenders                   name            WARN
                             class           ch.qos.logback.core.rolling.RollingFileAppender
                             classLoader     org.springframework.boot.loader.LaunchedURLClassLoader@433c675d
                             classLoaderHash 433c675d
                             file            logs/warn.log
                             name            ALL
                             class           ch.qos.logback.core.rolling.RollingFileAppender
                             classLoader     org.springframework.boot.loader.LaunchedURLClassLoader@433c675d
                             classLoaderHash 433c675d
                             file            logs/all.log
                             name            WEWORK_ROBOT
                             class           com.musk.ums.warning.WeworkRobotLogbackAppender
                             classLoader     org.springframework.boot.loader.LaunchedURLClassLoader@433c675d
                             classLoaderHash 433c675d
  • name: 日志名字
  • classLoaderHash: 類加載器hashcode,后面會用到
  • level: 當(dāng)前的日志級別
  • effectiveLevel: 有效的日志級別,因?yàn)槿罩炯墑e會受到層級繼承影響,可能與level不一樣

設(shè)置日志級別

# -c 433c675d是類加載器的hashcode,從logger info的輸出結(jié)果中可以找到
[arthas@5345]$ logger -c 433c675d --name ROOT --level INFO
Update logger level success.
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容