【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);   }
}
复制代码

 

posted @     阅读(2333)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示