Log 4 j入門

2941 ワード

Log 4 Jって何?
Log 4 JはApache財団の次のオープンソースのログ管理プロジェクトであり、ログの収集プロセスと収集粒度を高度にカスタマイズし、収集後のログの出力位置をコンソール、ファイル、データベース、さらにはリモートサーバに出力することができます.これらの操作はLog 4 Jのプロファイルで定義するだけで実現できます.非常に強力なログ収集ライブラリです.それ以外に、Log 4 Jは多言語互換を提供して、Java、Python、.Netなどの言語環境の下のサーバーの中で使用することができて、サービスクラスタのログに対して統一的に管理することができます.
Log 4 J学習
Log 4 Jの3つのコンポーネント:
  • Logger(レコーダ):ログがどこに格納されているかにかかわらず、ログ(ログ・レベルに基づいて記録される)を記録します.
  • Appender(エンクロージャ):ロガーに記録されたログを、プロファイルに指定された場所に保存し、ログのエンクロージャのみを処理します.
  • Layout(レイアウト):ログをフォーマットして出力します.つまり、ログをより目立たせるために使用されます.もちろん、どのように計算するかは、プロファイルで設定します.
  • 1つのLoggerには複数のAppenderがあり、同時に複数のデバイスに出力することができ、各Appenderには出力内容をフォーマットするLayoutがあります.
    Loggerコンポーネント
    log 4 j.rootLoggerというスーパークラスは永遠に存在し、LoggerクラスのgetRootLogger()メソッドを使用してこのオブジェクトの参照を得ることができます.
    Loggerコンポーネントの継承関係:
  • 子クラスLoggerがログ・レベルを定義していない場合、親クラスのログ・レベルが継承されます.
  • サブクラスLoggerのコンポーネントのadditivityがfalse(デフォルトはtrue)に設定されている場合、サブクラスは親のAppenderを継承しません.そうしないと、親のすべてのAppenderが継承されます.
  • Appenderコンポーネント
    Appenderは、ログをどこに出力するかを決定し、目的地をサポートします.
  • コンソールコンソールコンソールコンソール
  • ファイルFile
  • GUIコンポーネント
  • ソケットインタフェースサーバ(Remote Socket Server)
  • NTのイベントレコーダ
  • UNIXデーモンプロセス(あるプロセスに出力)(検証対象)
  • Layoutコンポーネント
    Layoutコンポーネントは、ログの出力フォーマットを決定します.
  • org.apache.log 4 j.HTML Layoutログ
  • をHtml形式で出力
  • org.apache.log 4 j.PatternLayoutカスタムPatternモード出力ログ
  • org.apache.log 4 j.SimpleLayoutログ情報のレベルと、ログ文字列
  • org.apache.log 4 j.TTCCLayoutログ生成スレッド、時間、カテゴリなどの詳細
  • を含む
    ログ・レベル
    ログ・レベルは、次の5つに分けられます.
  • fatal重大なエラーにより、システムがクラッシュする
  • errorエラーが発生しましたが、システムは
  • を実行できます.
  • warn警告システムここで潜在的なエラーが発生する可能性がある
  • info一般的なランタイム情報
  • debugデバッグ情報、粒度が細い
  • 上記の5つの中レベルに加えて、2つの特殊なレベルのログ分類があります.
  • offログを閉じ、最大レベル
  • allログを開き、最低レベル
  • 上記のログのレベルは、off>fatal>error>warn>info>debug>all当日に構成されたログレベルがinfoの場合、すべてのDebugログは出力されません.
    Log 4 Jは、error、warn、info、debugの4種類を推奨しています
    Log 4 J応用
    アプリケーションについては、構成と使用にほかならないので、まずプログラムでLog 4 Jを構成する方法を見てみましょう.
    Log 4 Jの構成
    Log 4 JはXML構成とpropertiesファイルの2つの構成をサポートしているが、ここでは後述する.
    ロガーの構成
    #Log4J  Logger
    #  root Logger
    #log4j.rootLogger = [log level],[appender…] 
    log4j.rootLogger = INFO,console
    
    #       MyLogger Logger
    log4j.logger.MyLogger = WARN #   warn,   info debug         
    
    #      MyLogger Logger
    log4j.logger.MyLogger.MySonLogger = ,file  #”,file”         MyLogger,     
    
    Appenderの構成
    #       console Appender
    log4j.appender.console = org.apache.log4j.ConsoleAppender
    #          log4j         ,              
    
    #       File Appender
    log4j.appender.file = org.apache.log4j.FileAppender
    
    #       
    log4j.appender.file.File = log.txt
    
    Layoutの構成
    #  file       HTML
    log4j.appender.file.layout = org.apache.log4j.HTMLLayout
    
    #  console       SimpleLayout
    log4j.appender.console.layout = org.apache.log4j.SimpleLayout
    
    詳細はログ4 JのAPIを参照してください
    参照先:
    ログレベルLog 4 Jの使用