1.1。Slf4j
slf4jのフルネームはSimpleLoging Facade For Javaです。つまり、Javaプログラムのログ出力を提供する統合インターフェースにすぎません。特定のログ実装ソリューションではありません。JDBCと同様に、これは単なるルールです。したがって、slf4jだけでは機能しないため、apacheのorg.apache.log4j.Logger、jdkに付属のjava.util.logging.Loggerなど、他の特定のログ実装ソリューションと組み合わせる必要があります。
1.2。Log4j
Log4jはApacheのオープンソースプロジェクトです。Log4jを使用することで、コンソール、ファイル、GUIコンポーネント、さらにはソケットサーバー、NTイベントロガー、UNIXSyslogデーモンなどへのログ情報の配信先を制御できます。各ログの出力形式を制御できます。各ログ情報のレベルを定義することで、ログ生成プロセスをより詳細に制御できます。
Log4jは、ロガー、アペンダー、レイアウトの3つの重要なコンポーネントで構成されています。
- ロガー:有効または無効にするロギングステートメントを制御し、ログ情報のレベルを制限します
- アペンダー:ログをコンソールに出力するかファイルに出力するかを指定します
- レイアウト:ログ情報の表示形式を制御します
。Log4jに出力されるログ情報は、DEBUG、INFO、WARN、ERROR、FATALの5つのレベルを定義します。出力する場合、構成で指定されたレベルより高いレベルの情報のみがtrueになります。出力なので、コードを変更せずにさまざまな状況で出力されるようにコンテンツを構成すると非常に便利です。
1.3。LogBack
簡単に言えば、LogbackはJava分野のロギングフレームワークです。Log4Jの相続人と見なされます。
ログバックは主に3つのモジュールで構成されています:logback-core
、logback-classic
。logback-access
logback-coreは他のモジュールのインフラストラクチャであり、他のモジュールはその上に構築されています。明らかに、logback-coreはいくつかの重要な共通メカニズムを提供します。
logback-classicのステータスと機能はLog4Jと同等です。これは、Log4Jの改良版と見なされ、単純なログファサードSLF4Jを実装します
。logback-accessは主に、tomcatやjettyなどのサーブレットコンテナと対話するモジュールとして使用されます。 HTTPアクセスに関連するいくつかの機能を提供します。
1.3.1。ログバックの利点
- ログバックは、同じコードパスでより高速に実行されます
- より徹底的なテスト
- SLF4J APIのネイティブ実装(Log4Jには中間変換レイヤーも必要です)
- より豊富なドキュメント
- XMLまたはGroovy構成をサポートする
- 構成ファイルの自動ホットロード
- IOエラーから適切に回復する
- ログアーカイブを自動的に削除する
- ログをアーカイブファイルに自動的に圧縮します
- 複数のJVMプロセスが同じログファイルを記録できるように、慎重モードをサポートします
- さまざまな環境に適応するための構成ファイルへの条件付き判断の追加をサポート
- より強力なフィルター
- SiftingAppender(フィルターアペンダー)をサポート
- パケット情報を含む例外スタック情報
1.4。ELK
ELKは、Elasticsearch、Logstash、およびKibanaのソフトウェアコレクションの略語です。これら3つのソフトウェアと関連コンポーネントは、大規模なログリアルタイム処理システムを作成できます。
- Elasticsearchは、
フルテキストのインデックス作成をサポートするLuceneベースの分散ストレージおよびインデックス作成エンジンです。主にログのインデックス作成と保存を担当して、ビジネスパーティによる取得とクエリを容易にします。 - Logstashは、ログの収集、フィルタリング、および転送を行うためのミドルウェアです。主に、さまざまなビジネスラインのさまざまなログの統合された収集とフィルタリングを担当し、Elasticsearch
に転送してさらに処理します。 - Kibanaは、Elasticsearch
データのクエリを実行し、さまざまな円グラフ、ヒストグラム、エリアチャートなどの視覚的な方法でビジネス側に表示することを主に担当する視覚化ツールです。