【Java】logback日志显示完整包名

当logback日志输出包名为简称时,如o.a.d.config.bootstrap.DubboBootstrap,本文揭示了这一现象的原因——logback.xml基础配置文件引入了简化包名的设置。解决方案包括不引用base.xml或自定义Console Appender。此外,还提到了检查logback加载的Append集合和日志输出位置的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、背景

  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);
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值