SLF 4 Jのいくつかの実際の応用モード--その2:SLF 4 J+Logback

6229 ワード

2010-04-07 — Yanbin
前述のSLF 4 Jの使い方の1つはSLF 4 J+Log 4 Jであり、ここで提案する組み合わせはSLF 4 J+LogBackである.ログ4 Jは?ログ4 Jよりも良いログが実現しているのだろうか.はい、答えはLogBackです.LogBackとLog 4 Jが同じマスターの手だと知っていれば、驚くことはありません.LogBackはLog 4 Jを強化し、SLF 4 Jの懐に入り、著者からLog 4 Jの後継者と認定された.
なぜLogbackと呼ぶのか、私にはわかりませんが、どうせBrokebackと呼ばないでください.ここではLog 4 Jの代わりにLogbackを推奨する十数の理由である:Reasons to prefer logback over log 4 jは、より速く言うほど大きい.良いテスト;SLF 4 Jとの関係が強い.ドキュメントが豊富です.プロファイルを自動的にロードできます.複数のJVMが1つのログファイルを書いたり、他のI/Oエラーが発生した場合、プログラムの実行に影響しません.プロファイルに条件制御を追加する.強力なログフィルタリング;より強力なログ分割機能;ログファイルを自動的に圧縮、削除します.例外スタック内のより多くのデータ情報.
Logbackは3つのモジュールに分けられる:logback-core,logback-classic,logback-access.logback-coreはコアです.logback-classicはlog 4 jを改善し、自身がSLF 4 J APIを実現したので、Logbackを使用しても元のLog 4 J、javaなどの他のログを使用して実現することができます.util.loggingなど;logback-accessはhttpなどのログ情報にアクセスしやすくします.
さらに、LogbackはOSGI環境に置くことができます.では、簡単にLogbackを紹介して、具体的にどのように使うかを見てみましょう.
必要なプロファイルとコンポーネントパッケージ、次の3つのjarファイルとxmlファイルは、プロジェクトのClassPathに配置されます.
1. slf4j-api-1.5.11.jar 2. logback-core-0.9.20.jar 3. logback-classic-0.9.20.jar 4. logback.xmlまたはlogback-test.xml(log 4 j.properties/log 4 j.xmlと同様)
前のパッケージはhttp://www.slf4j.org/download.htmlでダウンロードして、第2の第3の包みはhttp://logback.qos.ch/download.htmlダウンロードします.パッケージファイル名のバージョン番号が少し悪いかもしれません.大丈夫です.ここではHTTPアクセスログ情報を示すためlogback-access-0.9.20は不要である.jar.
Logbackはまずlogback-testを探します.xml、ないならlogbackを探します.xmlファイルは、見つからないままBasicConfiguratorの基本構成を使用します.BasicConfiguratorは、貼り付けられるlogbackに相当します.xmlファイルの内容の構成.ここではlogbackを使います.xmlプロファイル、以前のlog 4 j.propertiesファイルはPropertiesTranslatorでlogbackに変換できる.xmlファイルの内容.
次は最も簡単なlogbackです.xmlファイルの内容
01
02
03
04
05
06
07
08
09
10
11
12 <? xml version = "1.0" encoding = "UTF-8" ?> < configuration >    < appender name = "stdout" class = "ch.qos.logback.core.ConsoleAppender" >        < encoder charset = "GBK" >            < pattern >%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</ pattern >        </ encoder >    </ appender
     < root level = "DEBUG" >      < appender-ref ref = "stdout" />    </ root > </ configuration >
log 4 j.xmlでできる構成、logback.xmlでもできますし、などの強力な制御も強化されていますので、logbackのマニュアルを参照してくださいhttp://logback.qos.ch/manual/index.html.
Logbackのコードを使う
01
02
03
04
05
06
07
08
09
10
11
12 package com.unmi;
  import org.slf4j.Logger; import org.slf4j.LoggerFactory;
  public class TestLogback {      private static final Logger logger = LoggerFactory.getLogger(TestLogback. class );
       public static void main(String[] args) {          logger.info( "Hello {}" , "TestLogback" );      } }
本文の元のリンクhttp://unmi.cc/slf4j-logback/ウグイスUnmi Blogより
本来の汎用ログフレームワークがSLF 4 Jであるため、あくまでも、ここでのLogbackはSLF 4 J+Log 4 Jの使用方式におけるLog 4 JバインドとLog 4 Jの機能に相当する.
上のコードを実行し、出力します.
21:38:43.031 [main] INFO  com.unmi.TestLogback - Hello TestLogback
やはり前回と同じように、ここではSLF 4 J+LogbackとSLF 4 J+Log 4 Jの2つの方法で比較します.
SLF 4 J+Logbackコンビネーション
コントラスト
SLF 4 J+Log 4 Jコンビネーション
slf4j-api-1.5.11.jar
同様に、上位APIを定義する
slf4j-api-1.5.11.jar
logback-classic-0.9.20.jar
すべてバインディングで、左側はLogbackバインディングとして使用されます
slf4j-log4j12-1.5.11.jar
logback-classic-0.9.20.jar
左側はログインプリメンテーションとして使用されます
log4j-1.2.15.jar
logback-test.xml/logback.xml
かなり、logbackはlog 4 jを追加しました
log4j.properties/log4j.xml
プログラムコード中:import org.slf4j.Logger; import org.slf4j.LoggerFactory;  Logger logger = LoggerFactory.getLogger(TestSlf4j.class); logger.info("Hello {}","SLF4J");
まったく同じで、実質的にSLF 4 J APIがアプリケーションコンポーネントに侵入しただけで、Logbackとは関係ありません.
プログラムコード中:import org.slf4j.Logger; import org.slf4j.LoggerFactory;  Logger logger = LoggerFactory.getLogger(TestLogback.class); logger.info("Hello {}","Logback");
以上より明らかなように、SLF 4 J+Logbackのような組み合わせはSLF 4 J+Log 4 Jのような使い方とは実際には差がないことが分かった.SLF 4 Jは、他のログインプリメンテーションフレームワークを使用する場合、SLF 4 J+対応するバインド+ログインプリメンテーションであり、ここではSLF 4 J+Log 4 Jと略称され、その間にSLF 4 JからLog 4 Jへのバインドがある.完全な説明は次のとおりです.
SLF 4 J+Log 4 Jの方式:slf 4 j-api-1.5.11.jar + slf4j-log4j12-1.5.11.jar + log4j-1.2.15.JAr SLF 4 J+Logback方式:slf 4 j-api-1.5.11.jar + logback-classic-0.9.20.JAr+logback-classc-0.9.20前のlogback-classc-0.9.20.jarはバインディング用であり、後者はログ実装用、すなわちlogback-classic-0.9.20である.JArは前のslf 4 j-log 4 j 12-1.5.11をJArとlog 4 j-1.2.15.jarの2つのパッケージの機能が混ざっています.
Logbackが担当している役割を理解すると、Logbackアプリケーションコンポーネントを使用しているということがわかりますが、実際に使用されている統合ログコンポーネントはSLF 4 Jにすぎません.ログバックはログ4 Jのようなものであり,自身がバインドされたログを持って実現しているともいえる.
ログバック公式ホームページでhttp://logback.qos.ch/面にはLogbackを使用した項目が見られます.
本リンクhttp://unmi.cc/slf4j-logback/ウグイスUnmi Blogより