春ブーツlogbackアペンダは、カスタム設定アポロを読みます

同社は、アペンダは、同社の統合ログシステムにアクセスしたいプロジェクトは、アポロの設定を読んでソリューションと私たちの努力の最後の問題が発生しました

1.application.properties設定

カスタム名を使用するにはlogging.configに注意してください。

#アポロ流通センター
app.id = app.id
//127.0.0.1:30225 apollo.meta = HTTP
をtrueにapollo.bootstrap.enabled =
apollo.bootstrap.namespaces =アプリケーション
apollo.bootstrap.eagerLoad.enabled = trueに
#ログ設定その後、彼らはアポロ構成を配置する必要があり、デフォルトlogback.xml名を使用しないでください。
logging.config =クラスパス:logback-custom.xml

2.logback-custom.xml構成、特徴としてアポロ構成ordercenter.order.elk.log.url

<! -ヘラジカ日志路径- > 
<springPropertyスコープ= "文脈"名前= " ordercenter.order.elk.log.url "ソース=" ordercenter.order.elk.log.url "> </ springProperty>
<! - ELK日志- >
<アペンダ名= "elkLog"クラス= "com.XXXX.ordercenter.commonservice.logAppender.ElkAppender">
<レイアウト>
<パターン>%D [%レベル]%ロガー{36}%ライン- %MSG%N </パターン>
</レイアウト>
<orderElkLogUrl> $ { ordercenter.order.elk.log.url } </ orderElkLogUrl>
</アペンダ>
<! - ELK日志异步执行- > 
<アペンダ名= "ASYNC"クラス= "ch.qos.logback.classic.AsyncAppender">
<QUEUESIZE> 2048 </ QUEUESIZE>
<アペンダ-REF REF = "elkLog" / >
</アペンダ>

< -ベースのdubugログ:!治療の特定のファイルまたはコンソールログレベルが設定されフィルタが根を使用して、存在しない場合、どこのフィルタアペンダの設定に依存します設定- > 
<ルートレベル=「情報」>
<アペンダREF = -REF "ASYNC" />
</ルート>

3.ElkAppender.javaカスタムアペンダ、orderElkLogUrlプロパティを追加

@data 
publicクラスElkAppenderはAppenderBase <ILoggingEvent> {拡張
/ **
*读取アポロ配置
*を由logback-custom.xml传入
* /
プライベート文字列orderElkLogUrl。
プライベートレイアウト<ILoggingEvent>レイアウト;

@Override
公共ボイド開始(){
IF(this.layout == NULL){
addError( "という名前のアペンダーなしレイアウトセット[" +名+ "]");
リターン;
}
super.start()。
}

@Overrideは
{ボイドアペンド(ILoggingEventイベント)保護しました
        System.out.println(this.orderElkLogUrl)。
    } 
}

おすすめ

転載: www.cnblogs.com/FarmerMao/p/12437395.html