logbackとのlog4j

 

logbackとlog4 Jは一人によって書かれ

springboot デフォルトのロギングフレームワークはlogbackです。

:logbackコアによって主にlogback インフラ他のモジュール、そのビルドに基づいて、他のモジュール、キー一般的なメカニズムを提供し

                           logback-古典:軽量log4jの実装、簡単なログファサードSLF4Jを達成するために

                           logback-アクセス:サーブレットコンテナとの相互作用などの主要モジュール

コンフィギュレーションファイル構造logback.xml

                               

詳細なコンフィギュレーションファイルの内容:

< 設定スキャン= "true"をscanPeriod = "60秒" デバッグ= "false"に>
< プロパティ名= "glmapper名" 値= "glmapper-デモ" />
< のcontextName> $ {glmapper名} </ contextNameは>
< アペンダ> // XXXX </ アペンダ>
< ロガー> // XXXX </ ロガー>
< ルート> // XXXX </ ルート>
</ 設定>
1、ルートは、< 設定>は 、次の3つのプロパティが含まれています。
スキャン:このビットプロパティがtrueに設定されている場合、設定ファイルが変更された場合、再ロードされますが、デフォルトはtrueです。
scanPeriod:時間単位が与えられていない場合、デフォルトのミリ秒は、プロファイルの監視間隔が変更された場合に設定します。スキャンがtrueの場合、効果へのこのプロパティは、デフォルトの時間間隔は1分です。
デバッグ:このプロパティをtrueに設定すると、内部ログ情報、リアルタイムビューlogbackのランニングをlogback印刷され、デフォルト値はfalseです。
<設定スキャン= "true"をscanPeriod = "60秒"デバッグ= "false"に> 
      <! -其他配置省略- > 
    </ configuration>の
図2に示すように、子ノード< のcontextName缶 >:、コンテキスト名を設定するために使用されるデフォルト名コンテキストがデフォルトに、各ロガーロガーコンテキストに関連付けられている、特徴的な異なるアプリケーションを記録するために設けられた<contentName>他の名称を使用することができます。変更後は、変更することはできません。
<設定スキャン= "true"をscanPeriod = "60秒"デバッグ= "false"に> 
      <のcontextName> myAppNameと</ contextNameは> 
<! -他の構成は省略されます- > 
    </構成>
図3に示すように、子ノードが< プロパティ >:変数の値を定義するために使用される、それは二つのプロパティの名前と値を持つ、規定値ロガー<プロパティ>のコンテキストに挿入され、変数を使用する「$を{}」にすることができます。
名前:変数名、値:変数定義の値
<設定スキャン= "true"をscanPeriod = "60秒"デバッグ= "false"に> 
      <プロパティ名= "APP_NAME"値= "myAppNameと" /> 
      <のcontextName> $ {APP_NAME} </ contextNameは> 
      <! -其他配置省略- > 
    </ configuration>の
4、子ノード< タイムスタンプ >:取得タイムスタンプ文字列、キー、およびdatapattern
キー:この<タイムスタンプ>名前を識別するために
datepattern:フォーマットjava.txt.SimpleDateFormat、次のパターン文字列を変換するために現在の時刻を設定します
<設定スキャン= "true"をscanPeriod = "60秒"デバッグ= "false"に> 
      <タイムスタンプキー= "BYSECOND" datePattern = "yyyyMMdd'T'HHmmss" /> 
      <のcontextName> $ {BYSECOND} </ contextNameは> 
      <! -其他配置省略- > 
    </ configuration>の
5、子ノード< アペンダ >:ログを書き込む責任コンポーネント、2つの本質的な属性があります。名前とクラス
名前:アペンダ名、クラス指定されたアペンダの完全修飾名を指定します。
  5.1、ConsoleAppenderコンソールにログ出力:<エンコーダ>:ログ形式、<対象>:文字列のSystem.out
<構成> 
      <アペンダ名= "STDOUT"クラス= "ch.qos.logback.core.ConsoleAppender"> 
      <エンコーダ> 
        <パターン>% - 4relative [%スレッド]%-5level%ロガー{35} - %のMSGの%N </パターン> 
      </エンコーダ> 
      </アペンダ> 

      <ルートレベル= "DEBUG"> 
        <アペンダ-REF REF = "STDOUT" /> 
      </ルート> 
    </構成>
5.2、FileAppender:ログファイルに追加するには、
        ファイル:ファイル名が書かれている、親ディレクトリが存在しない場合は、相対ディレクトリ、または絶対ディレクトリを作ることができます既定値はありませんし、自動的に作成されます
        追記:それは本当であるならば、それが偽の場合、ログは、ファイルの最後に追加され、既存のファイルを空に、デフォルトはtrueです
        エンコーダ:イベント形式を記録します
         慎重:trueの場合、ログはセキュリティに書かれている場合、デフォルトはfalseです。
onfiguration> 
      <アペンダ名= "FILE"クラス= "ch.qos.logback.core.FileAppender"> 
        <ファイル> testFile.log </ファイル> 
        <追記>真</ APPEND> 
        <エンコーダ> 
          <パターン>% - 4relative 【%スレッド]%-5level%ロガー{35} - %のMSG%N </パターン> 
        </エンコーダ> 
      </アペンダ> 

      <ルートレベル= "DEBUG"> 
      <アペンダ-REF REF = "FILE" /> 
      </ルート> 
    </ configuration>の
5.3 RollingFileAppender:最初の指定されたファイルへのログ、ログファイルを転がり、条件が一致した場合、他のドキュメントへのログ記録、
            ファイル:ファイル名が書かれている親ディレクトリが存在しない場合、あなたは、相対ディレクトリ、または絶対ディレクトリを作ることができますが自動的に作成されます
            追記:trueの場合、ログは、ファイルの最後に追加され、それがfalseの場合、既存のファイルを空にする
           rollingPolicy:スクロールが発生した場合、ファイルの移動や名前の変更が関与RollingFileAppender行動を決定し、
特定のプロパティには、スクロールポリシークラスのクラス定義
      のスクロールも、スクロールを開始する責任があるの両方を担当し、最も一般的に使用される戦略のローリング、時間に基づいた戦略を開発するためにそれをロール:クラス=「ch.qos.logback.core.rolling.TimeBasedRollingPolicyが」。次の子ノードを有している:
        <fileNamePattern>:必要なノードは、ファイル名と「%dの」変換指定が含まれ、「%のD」のような、java.text.SimpleDateFormatの指定された時間形式を含むことができる:%のD {YYYY-MM} 。
%dの直接使用する場合は、デフォルトの形式はYYYY-MM-DDです。不要ファイルのバイトポイントRollingFileAppender、ファイルを設定することで、あなたは常に、アクティブなファイルやアーカイブファイルに別の場所を指定し、指定したファイルに現在のログファイル(アクティブドキュメント)、変更されませんアクティブなファイルの名前を記録することができます。
もしファイルを設定しないで、イベントのファイル名は、しばらくの間に一度に変更fileNamePattern値に基づいて行われます。「/」または「\」は、ディレクトリの区切り文字として扱われます。
        <maxHistory>:
任意のノード、数を超えた古いファイルを削除し、予約されたアーカイブの最大数を制御します。仮定すると、各月のスクロール、および<maxHistory> 6、最後の6ヶ月間は、削除する前に、ファイル、古いファイルを保存します。古いファイルを削除、アーカイブ用に作成されたディレクトリが削除されることに注意してください。

      クラス=「ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy」:指定したサイズよりも、現在RollingFileAppenderトリガーアクティブなドキュメントのスクロールを通知する場合は、現在アクティブなファイルのサイズを参照してください。一つのノードのみ:
        <maxFileSizeの>:
        <慎重>:trueの場合、それはFixedWindowRollingPolicyをサポートしていません。サポートTimeBasedRollingPolicy、しかし、2つの制約があり、一つはファイル圧縮をサポートしていませんが許可されていない、2は空白のままにしておく必要があり、ファイルの属性を設定されていません。

      <triggeringPolicy>:RollingFileAppenderは、適切な有効スクロールを知らせます。
      固定ウィンドウアルゴリズムに従って、クラス=「ch.qos.logback.core.rolling.FixedWindowRollingPolicyは、」スクロールポリシーファイルの名前を変更します。これは、次の子ノードを持っています
        。<minIndex>:ウィンドウインデックス分
        <maxIndex>:最大ウィンドウインデックスユーザーがウィンドウが大きすぎる指定した場合に、自動的にウィンドウが12に設定されています。
        <fileNamePattern>:たとえば、その最小値を仮定し、最大値は1と2は、指定されたモードmylog%のi.log、およびアーカイブmylog1.logのmylog2.logを有するであろう「私は%」を含まなければなりません。また、mylog%i.log.gz、例えば、ファイル圧縮オプションを指定するか、または%i.log.zipログインすることはできません
      例:
        <構成> 
          <アペンダ名=「FILE」クラス=「ch.qos.logback.core.rollingを。 RollingFileAppender "> 
            <rollingPolicyクラス=" ch.qos.logback.core。 
              <fileNamePattern> YYYY-ログファイル%{D}はMM-DD </ fileNamePattern> .logの 
              <maxHistory> 30 </ maxHistory> 
            </ rollingPolicy> 
            <エンコーダ> 
              4relative [スレッド%] %% -5levelロガー- <パターン>%を{35} - %MSG%N - </パターン> 
            </エンコーダ> 
          </アペンダ> 

          <ルートレベル= "DEBUG"> 
            <アペンダ-REF REF = "FILE" /> 
          </ルート> 
        </構成>
        上述した構成を表します。ログファイルの30日間、毎日ログファイルを生成します。
図6に示すように、子ノードLoger:ある特定のパケットまたは特定のクラスを印刷するために、ログレベルを設定し、指定する<アペンダ>要素<アペンダ-の>ゼロ又はそれ以上を含んでいてもよい、アペンダを識別するために追加されますこのloger
     名前:この制約によってlogerは、特定のパケットまたは特定のクラスを指定するために使用されます
     レベル:印刷を設定するために使用されるレベル、大文字と小文字を区別しません:TRACE、DEBUG、INFO、WARN、ERROR、ALLおよびOFF
7、子ノードのルート:logerが要素であるが、それはlogerのルートで、すべてのlogerが優れている、唯一のレベルの属性があり、その名前は、以来、ルートとして指定されており、すでに最も優れています
レベル:印刷を設定するために使用されるレベル、大文字と小文字を区別しません:TRACE、DEBUG、INFO、WARN、ERROR、ALLおよびOFF
一般的に使用されるloger構成:

<! - 休止SQL专为にHibernate定制のためのショーパラメータ - >
<ロガー名= "org.hibernate.type.descriptor.sql.BasicBinder"レベル= "TRACE" />
<ロガー名= "org.hibernate.type .descriptor.sql.BasicExtractor」レベル= "DEBUG" />
<ロガー名= "のorg.hibernate.SQL"レベル= "DEBUG" />
<ロガー名= "org.hibernate.engine.QueryParameters"レベル= "DEBUG" />
<ロガー名= "org.hibernate.engine.query.HQLQueryPlan"レベル= "DEBUG" />

<! - -myibatisログの設定 - >
<ロガー名= "com.apache.ibatis"レベル= "TRACE" />
<ロガー名= "のjava.sql.Connection"レベル= "DEBUG" />
<ロガー名= "java.sql.Statementの"レベル= "DEBUG" />
<ロガー名= "のjava.sql.PreparedStatement"レベル= "DEBUG" />

logbackのlog4jの理由を置き換えます。

1より高速な実装:logbackカーネルの書き換えは、だけでなく、パフォーマンスを強化し、メモリ負荷が小さくなる初期化します。

図2に示すように、非常によくテスト:テストのlogback完全に異なるレベル

3、logback-classicが非常に自然なSLF4Jを達成します。

4、非常に完全なドキュメント

5、logback-古典自動的に設定ファイルをリロード

図6は、リリスは、イベントログビューアで、ログ大量のデータを扱うことができます

7、回復の控えめで非常にフレンドリーモード

8、コンフィギュレーションファイルには、さまざまな状況に対処することができます

9、フィルタは、ログをプリントアウトする必要があり、問題を診断する必要があります

10、SiftingAppender:非常に汎用性のアペンダーは:任意の動作パラメータに応じてログファイルを分割するために使用することができます。

11、自動圧縮は、ログの外に演奏されています

12、木との積層パッケージ版

13、自動的に古いログファイルを削除します

 

 

あなたはより多くの詳細を見たいと思って、クリックしてくださいます。https://blog.csdn.net/zbajie001/article/details/79596109

 

おすすめ

転載: www.cnblogs.com/cye9971-/p/11391689.html