arthas 案例: 动态更新应用Logger Level

来源: case-ognl-update-logger-level案例: 动态更新应用Logger Level在这个案例里,动态修改应用的Logger Level。查找UserController的ClassLoadersc -d com.example.demo.arthas.user.UserController | grep classLoaderHash$ sc -d com.example.demo.arthas.user.UserController | grep classLo

大家好,又见面了,我是全栈君。

来源: case-ognl-update-logger-level

案例: 动态更新应用Logger Level

在这个案例里,动态修改应用的Logger Level。

查找UserController的ClassLoader

sc -d com.example.demo.arthas.user.UserController | grep classLoaderHash


$ sc -d com.example.demo.arthas.user.UserController | grep classLoaderHash
 classLoaderHash   1be6f5c3

用ognl获取logger

ognl –classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader ‘@com.example.demo.arthas.user.UserController@logger’

$ ognl --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader '@com.example.demo.arthas.user.UserController@logger'
@Logger[
    serialVersionUID=@Long[5454405123156820674],
    FQCN=@String[ch.qos.logback.classic.Logger],
    name=@String[com.example.demo.arthas.user.UserController],
    level=null,
    effectiveLevelInt=@Integer[20000],
    parent=@Logger[Logger[com.example.demo.arthas.user]],
    childrenList=null,
    aai=null,
    additive=@Boolean[true],
    loggerContext=@LoggerContext[ch.qos.logback.classic.LoggerContext[default]],
]

可以知道UserController@logger实际使用的是logback。可以看到level=null,则说明实际最终的level是从root logger里来的。

单独设置UserController的logger level

ognl –classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader ‘@com.example.demo.arthas.user.UserController@logger.setLevel(@ch.qos.logback.classic.Level@DEBUG)’

再次获取UserController@logger,可以发现已经是DEBUG了:

ognl –classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader ‘@com.example.demo.arthas.user.UserController@logger’

$ ognl --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader '@com.example.demo.arthas.user.UserController@logger'
@Logger[
    serialVersionUID=@Long[5454405123156820674],
    FQCN=@String[ch.qos.logback.classic.Logger],
    name=@String[com.example.demo.arthas.user.UserController],
    level=@Level[DEBUG],
    effectiveLevelInt=@Integer[10000],
    parent=@Logger[Logger[com.example.demo.arthas.user]],
    childrenList=null,
    aai=null,
    additive=@Boolean[true],
    loggerContext=@LoggerContext[ch.qos.logback.classic.LoggerContext[default]],
]

修改logback的全局logger level

ognl –classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader ‘@org.slf4j.LoggerFactory@getLogger(“root”).setLevel(@ch.qos.logback.classic.Level@DEBUG)’

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120963.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • js获取cookie

    js获取cookie

    2021年8月22日
    67
  • offset宏定义_vba offset 用法

    offset宏定义_vba offset 用法C语言面试的时候可能会考,这样的宏定义:#defineoffsetof(TYPE,MEMBER)((size_t)&((TYPE*)0)->MEMBER)函数作用:计算结构体成员的偏移,有些自有代码里也会手写这样的代码,实际上这个函数是标准实现的。实际上如果我们浏览ANSIC编译器的标头文件,将在stddef.h中遇到这样奇怪的宏。这个红具有可怕的声明。此…

    2022年8月22日
    5
  • 怎么让联想计算机升级,联想电脑怎么升级win11?联想电脑升级win11的几种方法…

    怎么让联想计算机升级,联想电脑怎么升级win11?联想电脑升级win11的几种方法…最近刚发布的windows11的消息,但是很多朋友使用联想电脑的朋友不知道怎么升级win11。戴尔电脑升级win11的方法有很多,可以通过win10系统加入WINDOWS预览体验计划,这样就可以将win10升级到win11系统了,也可以采用自己下载win11镜像用u盘的方式升级到win11系统,下面小编就教大家几种将联想电脑升级win11的方法详细步骤。联想电脑升级win11方法一:官方升级法,…

    2022年5月20日
    116
  • linux系统安装yarn,centos安装yarn

    linux系统安装yarn,centos安装yarnYarn是一个用于node.js应用程序的高级包管理软件。它是任意一个其他Nodejs包管理器的快速、安全和可靠的替代方案,比npm更好的解决包依赖问题。本篇文章介绍在CentOS,Redhat和Fedora系统上安装Yarn的方法。1、使用NPM安装YarnYarn组件可与NPM一起安装。只需运行以下命令即可全局安装Yarn。另外,没有-g,就是仅为当前项目安装。$sudonpminsta…

    2022年5月26日
    249
  • 开发发版流程_文件签发流程

    开发发版流程_文件签发流程迭代流程开发人员:周一到周五产品设计:周一到周五测试人员:周六收集需求:周一周二周三周四需求梳理周五用户意见周六第二次需求梳理需求阶段第一次需求梳理会议开发人员和测试人员通过此会议了解下一次迭代

    2022年8月5日
    5
  • SpringBoot在Tomcat部署war包[通俗易懂]

    SpringBoot在Tomcat部署war包[通俗易懂]启动类配置继承SpringBootServletInitializer@SpringBootApplicationpublicclassTestApplicationextendsSpringBootServletInitializer{publicstaticvoidmain(String[]args){SpringApplication.run(TestApplication.class,args);}@Override

    2022年6月12日
    32

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号