ログコンポーネントlogbackの紹介と構成の使用方法(一)

4933 ワード

一、logbackの紹介
Logbackはlog 4 jの創始者によって設計されたもう一つのオープンソースログコンポーネントである.logbackは現在、logback-core、logback-classic、logback-accessの3つのモジュールに分かれています.logback-coreは他の2つのモジュールの基礎モジュールです.logback-classicはlog 4 jの改良バージョンである.さらにlogback-classicはSLF 4 J APIを完全に実現し、log 4 jやJDK 14 Loggingなどの他のログシステムに簡単に交換することができます.logback-accessアクセスモジュールとサーブレットコンテナの統合は、Httpを介してログにアクセスする機能を提供します.LogbackはSLF 4 Jと結合して2つのコンポーネントを使用する公式サイトです.
ロゴバックの公式サイト:http://logback.qos.ch
SLF 4 Jの公式サイト:http://www.slf4j.org
この記事で使用するコンポーネントは、公式サイトからダウンロードしてください.
    logback-access-1.0.0.jar
    logback-classic-1.0.0.jar
    logback-core-1.0.0.jar
    slf4j-api-1.6.0.jar
maven構成
<dependency>  
       <groupId>ch.qos.logbackgroupId>  
       <artifactId>logback-classicartifactId>  
    <version>1.0.11version>  
dependency>  

このように依存パッケージはすべて自動的にダウンロードされました!
二、logbackがlog 4 jに取って代わる理由:
Logbackとlog 4 jはよく似ていますが、log 4 jに詳しいなら、logbackはすぐに手に入ります.logbackのlog 4 jに対するいくつかの利点を以下に示す.
1、Logbackをより速く実現するカーネルが書き換えられ、いくつかの重要な実行経路で性能が10倍以上向上した.またlogbackはパフォーマンスが向上しただけでなく、初期化メモリのロードも小さくなりました.
2、非常に十分なテストLogbackは数年を経て、数え切れないほどのテストをしました.Logbackのテストはまったく異なるレベルです.著者らの観点では,これはlog 4 jではなくlogbackを選択する簡単な重要な原因である.
3、Logback-classicは非常に自然にSLF 4 j Logback-classcを実現してSLF 4 jを実現した.SLF 4 jを使用すると、logback-classicは感じられません.またlogback-classicは非常に自然にSLF 4 Jを実現しているのでlog 4 jまたはその他に切り替えるのは非常に容易で、別のjarパッケージとして提供するだけでOKであり、SLF 4 JAPIによって実現されるコードを動かす必要はありません.
4、非常に十分なドキュメント公式サイトには200ページ以上のドキュメントがあります.
5、プロファイルを自動的に再ロードプロファイルが変更された場合、Logback-classicはプロファイルを自動的に再ロードすることができる.スキャンプロセスは高速で安全であり、スキャンスレッドを別途作成する必要はありません.この技術は、JEE環境でアプリケーションが喜ぶことを十分に保証しています.
6、Lilith Lilithはlogイベントの観察者であり、log 4 jのchainsawと類似している.lilithは大量のlogデータを処理することもできます.
7、慎重なモードと非常に友好的なリカバリ慎重なモードでは、複数のFileAppenderインスタンスが複数のJVMの下を走り、同じログファイルを安全に書き込むことができます.RollingFileAppenderには制限があります.LogbackのFileAppenderとそのサブクラスにはRollingFileAppenderが含まれており、I/O異常から非常に友好的にリカバリできます.
8、コンフィギュレーションファイルは異なる状況を処理することができ、開発者は常に異なるLogbackコンフィギュレーションファイルが異なる環境下(開発、テスト、生産)にあると判断する必要がある.これらのプロファイルはわずかな違いしかなく、1つのプロファイルが複数の環境に適応できるように、和で実現することができます.
9、Filters(フィルタ)では、問題を診断し、ログを打つ必要がある場合があります.log 4 jでは、ログレベルを下げるしかありませんが、これにより大量のログが作成され、アプリケーションのパフォーマンスに影響します.Logbackでは、aliceというユーザーがログインすると、彼女のログはDEBUGレベルに打たれ、他のユーザーはWARNレベルに打つことができます.この機能を実現するには、XML構成を4行追加するだけです.MDCFIlterを参照してください.
10、SiftingAppender(非常に多機能なAppender)ログファイルを任意の所定の実行パラメータに基づいて分割するために使用できます.たとえば、SiftingAppenderは、ログ・イベントがユーザーのセッションにフォローされることを区別し、各ユーザーにログ・ファイルを1つ持つことができます.
11、自動圧縮されたlog RollingFileAppenderは、新しいファイルが作成されると、すでに作成されたログファイルを自動的に圧縮します.圧縮は非同期のプロセスであるため、大きなログファイルでも圧縮中に適用されても影響を受けません.
12、スタックツリーにパッケージバージョンがあるLogbackスタックツリーログを出すと、パッケージのデータが付きます.
13.古いログ・ファイルを自動的に削除するTimeBasedRollingPolicyまたはSizeAndTimeBasedFNATPのmaxHistoryプロパティを設定することで、ログ・ファイルが生成された最大数を制御できます.maxHistory 12を設定すると、12ヶ月以上のlogファイルが自動的に削除されます.
要するに、logbackはlog 4 jより優れているので、私たちの応用はすべてlogback上に構築しましょう.
三、Logbackの構成紹介
1、Logger、appender及びlayout
Loggerはログのレコーダとして,アプリケーションの対応するcontextに関連付けると,主にログオブジェクトの格納に用いられ,ログタイプ,レベルを定義することもできる.
Appenderは主にログ出力の宛先を指定するために使用されます.宛先はコンソール、ファイル、リモートソケットサーバ、MySQL、PostreSQL、Oracleおよびその他のデータベース、JMSおよびリモートUNIX Syslogデーモンなどです. 
Layoutはイベントを文字列に変換し、フォーマットされたログ情報の出力を担当します.
     2、logger context
各loggerは1つのLoggerContextに関連付けられ,Loggerを製造し,ツリー構造で各loggerを並べ替える.他のすべてのloggerもorg.を通過する.slf4j.LoggerFactoryクラスの静的メソッドgetLogger取得.getLoggerメソッドはlogger名をパラメータとする.同じ名前でロガーファクトリーを呼び出すgetLoggerメソッドで得られるのは、常に同じloggerオブジェクトの参照です.
3、有効レベル及びレベルの継承
ロガーはレベルを割り当てることができる.レベルはTRACE、DEBUG、INFO、WARN、ERRORを含む、ch.qosに定義される.logback.classic.Levelクラス.loggerが割り当てられていない場合、割り当てられたレベルを持つ最近の祖先からレベルが継承されます.root loggerのデフォルトレベルはDEBUGです.
4、印刷方法と基本的な選択規則
印刷方法は、記録要求のレベルを決定する.たとえば、Lがloggerインスタンスの場合、文L.info(".")はINFOレベルのレコード文です.レコードリクエストのレベルは、そのloggerの有効レベル以上の場合に有効と呼ばれ、そうでない場合は無効と呼ばれます.レコード要求レベルはpであり、そのloggerの有効レベルはqであり、p>=qの場合にのみ、その要求が実行される.
このルールはlogbackのコアです.ランク付けは、TRACE