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)
上一篇 2022年3月1日 上午8:00
下一篇 2022年3月1日 上午8:00


相关推荐

  • Java实现水仙花代码「建议收藏」

    Java实现水仙花代码「建议收藏」Java实现水仙花数简单代码//代码如下importjava.util.*;publicclassShuiXianHua{publicstaticvoidmain(String[]args){System.out.println(“判断水仙花数”);inti,j,k=0;//i是个位…

    2025年7月2日
    5
  • 异想天开 网商-男人商铺(六)

    异想天开 网商-男人商铺(六)

    2022年1月21日
    42
  • vue实现一个弹窗组件_vue弹窗组件封装

    vue实现一个弹窗组件_vue弹窗组件封装最近新项目遇到一个需求,在输入错误的时候,使用toast弹窗提示,在此之前,我使用的弹窗都是只写在单个页面上,需要的时候写一个,虽然也可以,但是对这个项目来说就太过麻烦了,于是想要写一个toast弹窗组件,在全局中引用。参考了从零开始徒手撸一个vue的toast弹窗组件这篇博文,我写了一个自己的弹窗组件。/src/components/toast/toast.vue<template…

    2026年3月4日
    5
  • 阿里云通义千问发布新一代端到端多模态旗舰模型 Qwen2.5-Omni 并开源,看听说写样样精通

    阿里云通义千问发布新一代端到端多模态旗舰模型 Qwen2.5-Omni 并开源,看听说写样样精通

    2026年3月13日
    4
  • Linux TSO流程分析

    Linux TSO流程分析1 TSO transimitseg 是针对 tcp 而言的 是指协议栈可以将 tcp 分段的操作 offload 到硬件的能力 本身需要硬件的支持 当网卡具有 TSO 能力时 上层协议栈可以直接下发一个超过 MTU 数据包 而把数据包拆分的动作交给硬件去做 节省 cpu 资源 除了 TSO 内核还有一个 GSO GSO 不区分协议类型 GSO 默认是开启的 GSO 是在软件上实现的一种延迟分段的技术 相比 TSO GSO 最终还是需要协议栈自己完成分段的处理 即使网卡没有 TSO 能力 传输层依然可以封装一个超过 M

    2026年3月18日
    2
  • wps html嵌入ppt,WPS怎么给PPT快速嵌入需要的字体

    wps html嵌入ppt,WPS怎么给PPT快速嵌入需要的字体大家平时在制作 PPT 幻灯片时 为了让 PPT 看起来更美观大方 除了会给 PPT 插入图片 还会把 PPT 的文字设定成我们自己需要的字体格式 但是其他用户在别的设备上再次打开 PPT 幻灯片时却发现我们设定的文字字体又变回了系统默认的字体 面对这样的情况 我们该怎么办呢 下面白豆芽就和大家分享 WPS 怎么给 PPT 快速嵌入需要的字体 具体操作方法和步骤如下 首先 打开一张幻灯片 将文字字体设置完毕 如下图所示 单击

    2026年3月18日
    2

发表回复

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

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