1. 程式人生 > 其它 >統計單詞個數-C語言實現

統計單詞個數-C語言實現

一、背景

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