Logbackログ構成の簡単な使用

9609 ワード

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 APIを実現し、変換を必要としない.
  • は構成が簡単で、多種の環境に適応することができる.
  • は、期限切れのログを定期的に削除することができる.
  • より強力なフィルタで、ログ・レベルの変更によって大量のログを生成する必要はありません.
  • はIOエラーから回復することができる.
  • .... logbackの長所についてはまだたくさんありますが、ここでは一つ一つ挙げません.詳細は公式のApiドキュメントを参照できます.アドレス:https://logback.qos.ch/documentation.html

  • Logbackの構成説明
    この構成の説明については、比較的一般的な構成を簡単に列挙して説明します.さらに詳しくは、公式のドキュメントの説明を参照してください.
    Logbackの階層の説明
    簡単な階層構造で、実際にはもっと多く、参考にしてください.
    configuration  
        root
        logger                     
        property                        
        appender 
            layout 
            rollingPolicy
               Pattern
               fileNamePattern
               maxFileSize
               maxHistory
               totalSizeCap

    具体的な説明
    configurationルートノードには、一般にscan、scanPeriod、debugの3つの属性があります.
  • scan:自動ロードするかどうか、デフォルトはtrueです.
  • scanPeriod:変更間隔をリスニングし、デフォルトでは1分です.
  • debug:logbackの実行ステータスを表示するかどうか、デフォルトtrue.

  • では、これを使用すると、次のような構成ができます.
    
    ...
    

    rootとloggerサブノードは、入力されたログレベルを指定します.
  • root:これは、プライマリ・ログを指定するレベルです.
  • logger:カスタムログを指定するレベルです.

  • 説明:rootで指定したログ・レベルは、クラスで出力されるログです.たとえば、次のようにします.
      private static Logger LOG = LoggerFactory.getLogger(logbackTest.class);

    loggerが指定するログ・レベルは、次のようなカスタム・レベルです.
    private static Logger LOG2 = LoggerFactory.getLogger("oneInfo");

    彼らの使い方は以下の通りです.
    
           
        
        
            
            
        

    説明2:levelはログ出力のレベルであり、additivityはコンソールでログを印刷するかどうかを示します.
    propertyサブノードで、一般的に変数値を定義します.2つのプロパティnameとvalueがあります.JavaのMapのkeyとvalueに似ています.
  • name:変数の名前
  • value:変数の値
  • 使用法は次のとおりです.

    説明:valueで指定したファイルパスは、手動で作成することなく、プロジェクトの兄弟ディレクトリで自動的に生成されます.
    appenderサブノードは、ログを書くコンポーネントを担当します.2つのプロパティ、nameとclassがあります.
  • name:カスタム名.
  • class:カスタム名に対応するフルリミット名は、ログの出力をどのように行うかです.

  • これはとても重要で、logbackのコアとも言えるでしょう.簡単な使い方は以下の通りです.
    
    

    説明:stdOUT名を定義し、コンソールで出力します.
    LayoutとPatternの2つは一般的に一緒に使われています.
  • layout:ログ情報のフォーマット;
  • Pattern:layoutサブノード、出力情報のフォーマットを定義します.

  • 簡単な使い方は以下の通りです.
    
                
                    %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level - %msg%n
                
    

    説明:Patternの中のフォーマットの%dは出力の時間フォーマットを表し、%threadは出力のスレッド名を表し、%-5 levelは文字幅を表し、%msgは出力の情報を表し、%nは改行を表す.
    rollingPolicy、fileName Pattern、maxFileSize、maxHistory、totalSizeCapなどは、ログのスクロール、つまりログカット管理などに一般的に使用されます.
  • rollingPolicy:ログのスクロール動作を決定し、一般的にログカットに使用されます.
  • fileName Pattern:必要なノードです.一般的には、ログのファイルのパスを指定し、フォーマットを生成するために使用されます.
  • maxFileSize:1つのログファイルの最大値で、それに達したらカットします.
  • maxHistory:ログ・ファイルの最大保存日数、つまり期限切れです.
  • totalSizeCap:ログ・ファイル全体の最大値で、ログは生成されません.

  • 簡単な使い方は以下の通りです.
    
            
                ${LOG_HOME}/mylog-%d{yyyy-MM-dd}.%i.txt
                10MB
                31
                10GB
            
        

    説明:この構成の意味は、毎日1つのログファイルを生成し、10 Mを超えた場合、ログは切断され、ログファイル名に1を追加し、ログファイルは最大31日間保持され、ログファイルは合計10 Gになります.
    Logback使用説明
    logbackログのプロファイルを簡単に説明した後、logbackを簡単に使いましょう.logback.xmlの使用には、slf 4 j-api、logback-core、logback-classicの3つのjarパケットに依存する必要があります.mavanの構成は次のとおりです.
    
         org.slf4j
         slf4j-api
         1.7.25
        
        
        
        
            ch.qos.logback
            logback-classic
            1.2.3
        
        
        
            ch.qos.logback
            logback-core
            1.2.3
        

    mavenに依存パッケージを追加することに成功したら、簡単なdemoを書いてテストしましょう.3つのlogログ、1つのプライマリlog、2つのカスタムlogを定義します.全体の構成は次のとおりです.
    
    
        
        
            
                
                    %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level - %msg%n
                
            
        
        
            
                ${LOG_HOME}/mylog-%d{yyyy-MM-dd}.%i.txt
                10MB
                31
                10GB
            
            
                
                    %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level - %msg%n
                
            
        
        
        
            
                
                ${LOG_HOME}/oneInfo/%d{yyyy-MM-dd}/oneInfo.%i.txt
                10MB
                31
                10GB
            
            
                
                    %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level - %msg%n
                
            
        
        
        
            
                
                ${LOG_HOME}/twoInfo/%d{yyyy-MM-dd}/twoInfo.%i.txt
                10MB
                31
                10GB
            
            
                
                    %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level - %msg%n
                
            
        
        
        
           
        
        
           
        
        
        
            
            
        
    
    

    次に、コンソール出力とファイルに出力します.このjavaのコードの例は次のとおりです.
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    /**
     * 
    * Title: logbackTest
    * Description:
    * logback     
    * Version:1.0.0  
    * @author pancm
    * @date 2018 1 24 
     */
    public class logbackTest {
        private static Logger LOG = LoggerFactory.getLogger(logbackTest.class);
        private static Logger LOG2 = LoggerFactory.getLogger("oneInfo");
        private static Logger LOG3 = LoggerFactory.getLogger("twoInfo");
        
        public static void main(String[] args) {
            test();
        }
        
        private static void test(){
    
            LOG.debug("    debug");
            LOG.info("    info");
            LOG.warn("    warn");
            LOG.error("    error");
            
            LOG2.debug("oneInfo debug");
            LOG2.info("oneInfo info");
            LOG2.warn("oneInfo warn");
            LOG2.error("oneInfo error");
            
            LOG3.debug("twoInfo debug");
            LOG3.info("twoInfo info");
            LOG3.warn("twoInfo warn");
            LOG3.error("twoInfo error");
        }

    出力結果は次のとおりです.
    ログの生成ディレクトリ:
    出力結果の説明:
  • LOG:印刷のレベルがinfoに設定されているため、debugレベルでは印刷されません.
  • LOG 2:カスタム構成設定がadditivity=「false」であるため、コンソールに印刷されません.したがって、1つも印刷されませんが、debugレベル以上のログはlogs/pcm/oneInfoで表示できます.
  • LOG 3:カスタム設定がadditivity="true"なのでコンソールで印刷できます.したがって、warnレベルのログが2つ印刷され、ログもlogs/pcm/oneInfoで表示できます.

  • その他
    参照先:https://logback.qos.ch/documentation.html https://www.cnblogs.com/warking/p/5710303.html
    これで、本文のlogbackログの簡単な説明は終わります.読んでくれてありがとう.