返回顶部
首页 > 资讯 > 前端开发 > JavaScript >线上排障技巧之怎么动态修改Logger级别
  • 765
分享到

线上排障技巧之怎么动态修改Logger级别

2024-04-02 19:04:59 765人浏览 泡泡鱼
摘要

这篇文章主要介绍“线上排障技巧之怎么动态修改Logger级别”,在日常操作中,相信很多人在线上排障技巧之怎么动态修改Logger级别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解

这篇文章主要介绍“线上排障技巧之怎么动态修改Logger级别”,在日常操作中,相信很多人在线上排障技巧之怎么动态修改Logger级别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”线上排障技巧之怎么动态修改Logger级别”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

「效果演示:」

线上排障技巧之怎么动态修改Logger级别

「本文内容重点:」

Arthas工具简介Arthas是阿里开源的Java诊断工具,它的功能可以大致参考下图:

线上排障技巧之怎么动态修改Logger级别

它运行的原理是通过字节码生成工具(ASM字节码增强),将代理逻辑编织到原来的类里,实现对应的监控调试等功能。

本地测试:实时修改LOGGER级别

安装arthas

网络安装

在接通外网的环境下,可以使用快速网络安装,会从阿里的源拉去全量包。

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

全量安装

如果本地外网环境不通,比如某些容器内是不允许外网访问的,那么可以使用预先下载好的全量安装包,然后解压后运行包内的jar,使用命令:

java -jar arthas-boot.jar

启动arthas我在本地启动arthas,效果如下图:

线上排障技巧之怎么动态修改Logger级别

全局Logger信息

使用命令:

logger

线上排障技巧之怎么动态修改Logger级别

可以看到所有logger的信息,包括其中每个appenders。

使用如下命令,修改名称为ROOT的logger的日志级别至debug级别:

logger --name ROOT --level debug

线上排障技巧之怎么动态修改Logger级别

可以看到多出了debug级别的输出。

指定类名的logger信息

在有多个logger的情况下,可以查找指定名称的logger

logger -n ROOT

线上排障技巧之怎么动态修改Logger级别

指定classloader的logger信息

如果需要改变指定类的输出级别,先要定位到该类的classLoader,然后修改该clasLoader的logger。

sc -d cn.monitor4all.miaoshaWEB.DynamicLoggerTest | grep classLoaderHash

使用sc命令查看你需要改变的类信息:

线上排障技巧之怎么动态修改Logger级别

随后可以通过classLoader找到其对应的logger:

logger -c 18b4aac2

线上排障技巧之怎么动态修改Logger级别

然后就可以调整对应的logger日志级别:

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

线上排障技巧之怎么动态修改Logger级别

线上排障技巧之怎么动态修改Logger级别

使用 ongl  命令

此外,Arthas还支持使用ognl来修改日志级别。但是这种方法对log4j不友好,修改会报错。并且就算支持的logback/slf4j,也需要复杂的形如ognl  -c @org.slf4j.LoggerFactory@getLogger("root").setLevel()的命令才能修改,并不是一个很好的办法。

线上实战:实时打印MyBatis  SQL语句

容器内启动arthas

我的线上容器,是没有外网访问权限的(这种情况蛮常见的),我将全量包解压在容器内运行:

线上排障技巧之怎么动态修改Logger级别

打印DEBUG级别的SQL日志

下图是没有DEBUG信息的一条请求日志,可以看到只有入参出参的拦截器信息(INFO级别):

线上排障技巧之怎么动态修改Logger级别

使用logger --name ROOT --level debug,将SQL语句输出出来:

线上排障技巧之怎么动态修改Logger级别

毕竟,很多时候线上的bug是不小心拼错SQL导致。

到此,关于“线上排障技巧之怎么动态修改Logger级别”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 线上排障技巧之怎么动态修改Logger级别

本文链接: https://lsjlt.com/news/84333.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 线上排障技巧之怎么动态修改Logger级别
    这篇文章主要介绍“线上排障技巧之怎么动态修改Logger级别”,在日常操作中,相信很多人在线上排障技巧之怎么动态修改Logger级别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作