JavaロギングフレームワークとSpringbootロギングフレームワーク

 

目次

1.ログファサードとログの実装

2.SpringBootのデフォルトのロギングフレームワーク

3.あらゆる種類のログフレームワークSpringBootを統合する方法

4. SpringBootのデフォルトのロギングフレームワークを置き換える

5.注意が必要な事項


1.ログファサードとログの実装

 

JCLはcommons-loggingパッケージの下にあります

JULには、java.util.loggingパッケージの下のjdkが付属しています。 

Log4jは、Apacheでのオープンソースのロギングフレームワークです。

Logbackは、log4jの創設者が設計したもう1つのオープンソースのログコンポーネントであり、そのパフォーマンスはlog4jよりも優れています。

Log4j 2は、Log4jのアップグレードされたバージョンであり、logbackの優れた設計をいくつか参照しています。

 

Log4j2は主に以下の機能を備えています

パフォーマンスの向上:Log4j 2には、LMAX Disruptorライブラリに基づく次世代非同期ロガーが含まれていますマルチスレッドソリューションでは、Log4j 1.xおよびLogbackと比較して、非同期ロガーのスループットは18倍高く、レイテンシは数桁減少します

自動リロード構成:Logbackと同様に、Log4j 2は変更後に構成を自動的にリロードできます。Logbackとは異なり、再構成中にログイベントは失われません

ごみのメカニズムなし:定常状態のロギング中、Log4j 2はスタンドアロンアプリケーションではごみがなく、Webアプリケーションではごみが少ないです。これにより、ガベージコレクターへの圧力が軽減され、応答時間のパフォーマンスが向上します。

2.SpringBootのデフォルトのロギングフレームワーク

次の図は、SpringBootがデフォルトでSlf4j + Logbackを使用することを示しています。

3.あらゆる種類のログフレームワークSpringBootを統合する方法

質問について考えてみましょう:他のフレームワークがSlf4jファサードを使用していない場合、SpringBootは出力にSlf4jをどのように使用しますか?

http://www.slf4j.org/legacy.htmlでSlf4jの公式の歴史的問題の写真を見てみましょう

置換パッケージを使用して、フレームワークに付属するログファサードを置換できることがはっきりとわかります。置換の原理は明確です。

代替の原則

1.最初にシステム内の他のログフレームを除外します。

2.元のログフレームワークを中間パッケージに置き換えます。

3. slf4jの他の実装をインポートする

4. SpringBootのデフォルトのロギングフレームワークを置き換える

たとえば、SpringBootのログ実装をlog4j2に切り替えます。

<dependency>    
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>    
    <exclusions>           
        <exclusion>            
           <artifactId>spring-boot-starter-logging</artifactId>            							    
           <groupId>org.springframework.boot</groupId>        
        </exclusion>   
    </exclusions> 
</dependency>

<dependency>    
    <groupId>org.springframework.boot</groupId>    
    <artifactId>spring-boot-starter-log4j2</artifactId> 
</dependency>

5.注意が必要な事項

Slf4jのAPIは、Alibabaコーディング標準で推奨されています

 

今後もログ設定ファイルなど関連知識を追加していきますので、今後も注目して見ていきたいと思います〜

おすすめ

転載: blog.csdn.net/weixin_40791454/article/details/107040200