成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

線上排障技巧-動(dòng)態(tài)修改Logger級別

開發(fā) 前端
前言大多數(shù)情況下,我們會(huì)在打印日志時(shí)定義日志的LOGGER級別,用來控制輸出的信息范圍。

[[351828]]

前言

大多數(shù)情況下,我們會(huì)在打印日志時(shí)定義日志的LOGGER級別,用來控制輸出的信息范圍。

一方面,過多的輸出會(huì)影響查看日志的效率,另一方面,過少的日志讓問題定位變得困難。

但當(dāng)線上出現(xiàn)問題時(shí),線上容器通常定義在info級別,發(fā)生一些疑難問題時(shí),光靠info級別的日志很難定位問題。

一個(gè)典型的場景:在一些需要打印MySQL語句的場景,如果你正在使用MyBatis框架,由于MyBaits中SQL語句是DEBUG級別的信息,通常在線上容器就沒法看到。

一個(gè)丑陋的解決辦法就是在沙箱/預(yù)發(fā)環(huán)境,將log4j.xml中的info改為debug:

  1. <Root level="info"
  2.     <AppenderRef ref="detail"/> 
  3.     <AppenderRef level="error" ref="error"/> 
  4. </Root> 

然后重新打包部署,再發(fā)起請求來調(diào)試代碼。

甚至在一些無法模擬請求的場景下,還需要將修改灰度至線上環(huán)境,大量的debug信息會(huì)對線上服務(wù)造成實(shí)質(zhì)性的影響。

「本文簡要介紹如何使用阿里巴巴開源Java調(diào)試工具Arthas,實(shí)時(shí)修改線上服務(wù)的LOGGER級別,從而免去打包再部署的繁雜手續(xù),更快的定位線上問題。」

「效果演示:」

「本文內(nèi)容重點(diǎn):」

  • Arthas工具簡介
  • 本地測試:實(shí)時(shí)修改LOGGER級別
  • 線上實(shí)戰(zhàn):實(shí)時(shí)打印MyBatis SQL語句
  • 總結(jié)

Arthas工具簡介Arthas是阿里開源的Java診斷工具,它的功能可以大致參考下圖:

它運(yùn)行的原理是通過字節(jié)碼生成工具(ASM字節(jié)碼增強(qiáng)),將代理邏輯編織到原來的類里,實(shí)現(xiàn)對應(yīng)的監(jiān)控調(diào)試等功能。

關(guān)于Arthas這個(gè)工具,之前「我寫了一篇完整的總結(jié)文章」,包括所有功能的使用和原理初探,可以去原文章查看:https://juejin.im/post/6844903998730797070

本地測試:實(shí)時(shí)修改LOGGER級別

安裝arthas

網(wǎng)絡(luò)安裝

在接通外網(wǎng)的環(huán)境下,可以使用快速網(wǎng)絡(luò)安裝,會(huì)從阿里的源拉去全量包。

  1. curl -O https://arthas.aliyun.com/arthas-boot.jar 
  2. java -jar arthas-boot.jar 

全量安裝

如果本地外網(wǎng)環(huán)境不通,比如某些容器內(nèi)是不允許外網(wǎng)訪問的,那么可以使用預(yù)先下載好的全量安裝包,然后解壓后運(yùn)行包內(nèi)的jar,使用命令:

  1. java -jar arthas-boot.jar 

啟動(dòng)arthas我在本地啟動(dòng)arthas,效果如下圖:

全局Logger信息

使用命令:

  1. logger 

可以看到所有l(wèi)ogger的信息,包括其中每個(gè)appenders。

使用如下命令,修改名稱為ROOT的logger的日志級別至debug級別:

  1. logger --name ROOT --level debug 

可以看到多出了debug級別的輸出。

指定類名的logger信息

在有多個(gè)logger的情況下,可以查找指定名稱的logger

  1. logger -n ROOT 

指定classloader的logger信息

如果需要改變指定類的輸出級別,先要定位到該類的classLoader,然后修改該clasLoader的logger。

  1. sc -d cn.monitor4all.miaoshaweb.DynamicLoggerTest | grep classLoaderHash 

使用sc命令查看你需要改變的類信息:

隨后可以通過classLoader找到其對應(yīng)的logger:

  1. logger -c 18b4aac2 

然后就可以調(diào)整對應(yīng)的logger日志級別:

  1. logger -c 18b4aac2 --name ROOT --level debug 

使用 ongl 命令

此外,Arthas還支持使用ognl來修改日志級別。但是這種方法對log4j不友好,修改會(huì)報(bào)錯(cuò)。并且就算支持的logback/slf4j,也需要復(fù)雜的形如ognl -c @org.slf4j.LoggerFactory@getLogger("root").setLevel()的命令才能修改,并不是一個(gè)很好的辦法。

線上實(shí)戰(zhàn):實(shí)時(shí)打印MyBatis SQL語句

容器內(nèi)啟動(dòng)arthas

我的線上容器,是沒有外網(wǎng)訪問權(quán)限的(這種情況蠻常見的),我將全量包解壓在容器內(nèi)運(yùn)行:

打印DEBUG級別的SQL日志

下圖是沒有DEBUG信息的一條請求日志,可以看到只有入?yún)⒊鰠⒌臄r截器信息(INFO級別):

使用logger --name ROOT --level debug,將SQL語句輸出出來:

畢竟,很多時(shí)候線上的bug是不小心拼錯(cuò)SQL導(dǎo)致。

總結(jié)

文章簡單總結(jié)了使用Arthas來動(dòng)態(tài)調(diào)整日志級別的使用方法。在線上環(huán)境,能夠有效的提升排查問題的效率。當(dāng)然Arthas能做的還遠(yuǎn)不止于此,更多有趣并且「實(shí)用」的功能等待大家的發(fā)掘。

參考

https://jueee.github.io/2020/08/2020-08-20-Arthas%E4%B9%8B%E6%9F%A5%E7%9C%8B%E5%92%8C%E4%BF%AE%E6%94%B9%E6%97%A5%E5%BF%97%E7%BA%A7%E5%88%AB/

https://arthas.aliyun.com/doc/logger.html#appenderlogger

https://juejin.im/post/6844903959195303943

本文轉(zhuǎn)載自微信公眾號「后端技術(shù)漫談」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系后端技術(shù)漫談公眾號。

 

 

責(zé)任編輯:武曉燕 來源: 后端技術(shù)漫談
相關(guān)推薦

2011-03-28 10:03:46

Btrace

2010-09-13 11:25:16

共享無線上網(wǎng)

2023-01-11 08:09:25

Springboot修改日志級別

2019-03-29 10:22:08

Linux系統(tǒng)故障技巧

2011-07-07 14:15:35

WIFI無線

2009-04-24 16:29:51

AP共享無線上網(wǎng)

2009-12-23 14:30:24

WPF顯示動(dòng)態(tài)GIF

2020-10-20 17:15:05

Java故障排查命令

2009-12-08 11:16:07

PHP動(dòng)態(tài)圖像創(chuàng)建

2009-10-12 15:44:26

VB.NET動(dòng)態(tài)編碼技

2010-04-14 09:38:49

Windows SerIE安全級別

2010-03-17 15:35:47

2009-07-27 10:03:02

分層模型網(wǎng)絡(luò)故障

2021-06-04 07:13:43

Logger TRACEDEBUG

2015-09-22 11:09:47

Java 8動(dòng)態(tài)代理

2010-08-18 10:05:28

Hyper-V動(dòng)態(tài)內(nèi)存

2013-07-25 09:56:22

OSPF路由選擇路由故障OSPF

2021-04-27 09:22:28

鴻蒙HarmonyOS應(yīng)用

2020-10-15 06:34:45

內(nèi)存代碼背景頁

2010-01-20 18:51:16

VB.NET修改系統(tǒng)時(shí)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 日日摸夜夜添夜夜添精品视频 | 日韩欧美国产综合 | 精品欧美乱码久久久久久 | 成人蜜桃av | 天天色天天射天天干 | a级黄色毛片免费播放视频 国产精品视频在线观看 | 午夜合集| 亚洲国产成人精品久久 | 国产aaaaav久久久一区二区 | 欧美九九九 | 国内自拍偷拍 | 欧美日韩在线播放 | 伊人亚洲 | 国产福利在线 | 久久精品这里精品 | 久久久精选| 久久中文字幕一区 | 干干干日日日 | 天天干天天玩天天操 | 一级毛毛片 | 99福利 | 午夜在线精品偷拍 | 亚洲欧美中文字幕在线观看 | 超碰人人插 | 国家一级黄色片 | 日韩在线不卡 | 草草视频在线观看 | 国产成人在线视频免费观看 | 亚洲国产精品第一区二区 | 久久国产精品-久久精品 | 色婷婷狠狠 | 日韩在线一区二区 | 久久777| 日韩精品一区二区三区中文字幕 | 久久久精品影院 | 亚洲视频免费在线看 | 国产一区三区在线 | 人人草人人干 | 国产精品久久久久久福利一牛影视 | 五月花丁香婷婷 | 国产成人99久久亚洲综合精品 |