Logback-打印方法名及代码行号

news2024/10/7 20:32:45
背景

公司产品使用了logback作为日志输出框架,日志输出的pattern里配置了打印调用方法名及代码行号的配置,但是实际输出的日志方法名总是显示?
在强迫症的驱使下,开启了探秘之旅

  • Logback版本

1.2.3

  • 项目中Logging.pattern配置如下:

[%boldBlue(%d{yyyy-MM-dd HH:mm:ss.SSS})][%yellow(${spring.application.name:-},%X{X-B3-TraceId:-},%X{X-B3-SpanId:-},%X{X-Span-Export:-})] [%thread] [%highlight(%-5level)] [%cyan(%logger{50}.%M(%F:%L))] : %msg%n

其中:%M-输出调用方法名、%F-文件名、%L-代码执行行号

问题
  • 问题解决前效果如下图: 

    image.png

  • 解决后效果图:

image.png

探秘之旅

为了处理这个问题,首先的第一想法当然还是寻求度娘的帮助了,如下图:

image.png

 然并卵,没啥用!为此我还翻了不少博客,最终的结果时,大家似乎没遇到或者不在这么个小问题!
当然我也翻了下官方文档,以为英文能力限制,没找到!所以我就用了最笨的办法来找问题:翻源码!!!
搞过Log信息定制的朋友应该知道,pattern里的每个标签都有个对应的类进行解析,那么只要找到解析**%M**的类,就成功大半了。最终皇天不负苦心人!

image.png

 

image.png

Debug大法:

咦,cda.length > 0竟然为false????? 

image.png

 ILoggingEvent对象从哪儿来?一切要从源头开始

image.png


惊喜!!!!!这就是为什么cda.length > 0为false的根本原因啦啦啦!

image.png

 验证...

image.png

image.png

 无言。。。

反思

为啥类ch.qos.logback.classic.AsyncAppender中includeCallerData默认为false?这个问题找度娘是可以找到答案的,根本原始是获取方法名、代码行号的方法的性能不太好,所以非必要的情况下不要开启!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1874648.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

51单片机STC89C52RC——11.1 蜂鸣器播放音乐

目录 目的/效果 一,STC单片机模块 二,蜂鸣器 2.1 介绍 2.2 板子位置电路图 2.3 发声原理 2.4 音符和频率 三,创建Keil项目 四,代码 4.1 乐谱代码 4.1.1 《义勇军进行曲》 4.1.2 《天空之城》 4.1.3 《小美满》 4.1.…

6.26.4.3 条件生成对抗和卷积网络用于x射线乳房质量分割和形状分类

一种基于条件生成对抗网络(conditional Generative Adversarial Networks, cGAN)的乳房肿块分割方法。假设cGAN结构非常适合准确地勾勒出质量区域,特别是当训练数据有限时。生成网络学习肿瘤的内在特征,而对抗网络强制分割与基础事实相似。从公开DDSM数据…

【移动应用开发期末复习】第五/六章例题

系列文章 第一章——Android平台概述 第一章例题 第二章——Android开发环境 第二章例题 第三章 第三章例题 第四章 第五/六章 系列文章RadioGroup 是一个Android特有的布局容器,用于包含多个RadioButton组件。当用户选择其中一个RadioButton时,RadioGroup会自动取消其他Rad…

CS-隐藏防朔源-数据转发-iptables(Linux自带的防火墙)

免责声明:本文仅做技术交流与学习... 目录 准备环境: 1-iptables转发机设置转发: 2-CS服务器配置iptables服务器的IP 准备环境: 两台外网服务器. --iptables服务器就是做一个中转...封了中转就没了... 1-iptables转发机设置转发: iptables -I INPUT -p tcp -m tcp --dport 8…

【FFmpeg】avio_open2函数

【FFmpeg】avio_open2函数 1.avio_open21.1 创建URLContext(ffurl_open_whitelist)1.1.1 创建URLContext(ffurl_alloc)1.1.1.1 查找合适的protocol(url_find_protocol)1.1.1.2 为查找到的URLProtocol创建UR…

【前端项目笔记】6 参数管理

参数管理 效果展示: 在开发功能之前先创建分支goods_params cls 清空终端 git branch 查看所有分支 git checkout -b goods_params 新建分支goods_params git push -u origin goods_params 把本地的新分支推送到云端origin并命名为goods_params 参数管理需要维…

报餐小程序可以运用在饭堂的哪方面

随着科技的快速发展,智能化、信息化的管理方式逐渐渗透到我们日常生活的方方面面。在饭堂管理中,报餐小程序的应用为传统的餐饮管理方式带来了革命性的变革。本文将探讨报餐小程序在饭堂管理中的应用及其带来的优势。 一、报餐小程序的基本功能 报餐小程…

GIT 基于master分支创建hotfix分支的操作

基于master分支创建hotfix分支的操作通常遵循以下步骤: 切换到master分支: 首先,确保你的工作区是最新的,并且你在master分支上。如果不在master分支,你需要先切换过去。 Bash git checkout master 拉取最新的master…

鸿蒙开发设备管理:【@ohos.distributedHardware.deviceManager (设备管理)】

设备管理 本模块提供分布式设备管理能力。 系统应用可调用接口实现如下功能: 注册和解除注册设备上下线变化监听发现周边不可信设备认证和取消认证设备查询可信设备列表查询本地设备信息,包括设备名称,设备类型和设备标识 说明&#xff1a…

ATFX汇市:美国5月PCE数据来袭,EURUSD或迎剧烈波动

ATFX汇市:今日20:30,美国商务部将公布5月核心PCE物价指数年率,前值为2.8%,预期值2.6%,预期下降0.2个百分点。PCE数据是美联储进行货币政策决策的重要依据,尤其是核心PCE年率,向下波动会增加降息…

【LeetCode】一、数组相关:双指针算法 + 置换

文章目录 1、算法复杂度1.1 时间复杂度1.2 空间复杂度 2、数组3、leetcode485:最大连续1的个数4、leetcode283:移动05、leetcode27:移除元素 1、算法复杂度 1.1 时间复杂度 算法的执行时间与输入值之间的关系(看代码实际总行数的…

J2EE框架之mybatis学习——连接数据库实现查询操作

J2EE框架之mybatis学习——连接数据库实现查询操作 作业要求: 作者:杨建东 关于具体内容我正准备更新至我的CSDN【被瞧不起的神】也可移步我的公众号【猿小馆】 结合老师的课件和黑马程序员的课程学习。 因为我上课老师已经讲过了基本的概念和理解&a…

Swagger与RESTful API

1. Swagger简介 在现代软件开发中,RESTful API已成为应用程序间通信的一个标准。这种架构风格通过使用标准的HTTP方法来执行网络上的操作,简化了不同系统之间的交互。API(应用程序编程接口)允许不同的软件系统以一种预定义的方式…

西安电子科技大学微电子/集成电路801考研第一名学长经验分享

西安电子科技大学801考研经验贴 24 届上岸杭研微电子,以下是我的初试成绩,在这里给学弟学妹们分享一下初试复习经验,希望对大家有帮助,有疑问可以在会员群私聊我; 专业课杭研第一名,当时跟的研梦考研小孙学…

流水线作业模拟程序

目录 一 设计原型 二 后台源码 一 设计原型 二 后台源码 namespace 流水线作业模拟 {public partial class Form1 : Form{public Form1(){InitializeComponent();}private int Count 0;private bool IsStop false;private void uiLight1_Click(object sender, EventArgs e…

Jenkins容器的部署

本文主要是记录如何在Centos7上安装docker,以及在docker里面配置tomcat、mysql、jenkins等环境。 一、安装docker 1.1 准备工作 centos7、VMware17Pro 1.2 通过yum在线安装dokcer yum -y install docker1.3 启动docker服务 systemctl start docker.service1.4 查看docke…

Python 中的抽象语法树

Abstract Syntax Trees in Python 注:机翻,未校对。 Requirement: All examples are compatible with at least Python v3.6, except for using ast.dump() with the attribute indent which has been added in Python v3.9. 要求:所有示例至…

黑马点评的程序登录界面点击了发送验证码之后弹出红色异常框之后又返回登录页面

分析原因是因为token为null,然后执行了response.setStatus 401然后就出现这个问题,只要注释了这行就行了,就能正常登录!~

3d模型怎么一缩放模型都散了?---模大狮模型网

在3D建模和渲染中,缩放是常见的操作,用来调整模型的大小以适应不同场景或视角需求。然而,有时在进行缩放操作时,模型可能会出现不希望的散乱现象,这可能导致模型的外观和结构受到影响。模大狮将探讨为何会出现这种问题…

什么软件可以做计划 能做待办计划的app

在快节奏的现代生活中,做计划已成为许多人提高效率、管理时间的重要方法。无论是学生安排学习进度,还是职场人士规划工作任务,一份清晰的计划都能帮助我们更好地掌控生活节奏,实现目标。 选择一款好用的待办软件来做计划&#xf…