目次
2.SpringBootのデフォルトのロギングフレームワーク
3.あらゆる種類のログフレームワークSpringBootを統合する方法
4. SpringBootのデフォルトのロギングフレームワークを置き換える
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コーディング標準で推奨されています
今後もログ設定ファイルなど関連知識を追加していきますので、今後も注目して見ていきたいと思います〜