【Java】logback日志显示完整包名
一、背景
logback输出日志时,包名过长时会显示简称,比如o.a.d.config.bootstrap.DubboBootstrap
完整包名是:org.apache.duboo.config.bootstrap.DubboBootstrap
本文说明其原因并给出解决方法
二、原因
logback.xml配置文件引入了基础配置文件
<include resource="org/springframework/boot/logging/logback/base.xml"/>
base.xml会自动加载两个append,其中CONSOLE的输出格式就会简化包名

三、解决
1. 不引入base.xml
2. 使用自定义的Console
<appender name="Console" class="ch.qos.logback.core.ConsoleAppender"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern>%d{HH:mm:ss.SSS} %-5level [ %thread ] %logger Line:%-3L - %msg[Console]%n</pattern> <charset>utf-8</charset> </encoder> </appender> <root LEVEL="info"> <appender-ref ref="Console"/> </root>
四、其它
1. 查看logback加载的Append集合(logback-core)
class ch.qos.logback.core.joran.action.AppenderRefAction { HashMap<String, Appender<E>> appenderBag = (HashMap<String, Appender<E>>) ec.getObjectMap().get(ActionConst.APPENDER_BAG); Appender<E> appender = (Appender<E>) appenderBag.get(appenderName); }
2. logback输出内容位置(Console、File等)(logback-core)
class ch.qos.logback.core.OutputStreamAppender<E>
{ protected void subAppend(E event) { byte[] byteArray = this.encoder.encode(event); writeBytes(byteArray); }
}
分类:
Java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架