Logback ログフレームワーク学習 (1) logback の概要

まず、ログ フレームワークについての私の感想を話します
。ログは出力できません。理由は、ロギングフレームワークはあまり重要ではないと皆さん思っているからで、出力できればsoutと似たような感じなので、私も同じように思っています… 問題がある場合は、log4j.propertiesとlog4jを2つコピーしてください。 xml in Baidu. 、問題がある場合は次回に cv を続けます。もうこうはなりたくない、ロギングフレームワークをしっかり学びたい、皆さんもぜひ学んでください。

公式ウェブサイト


公式 Web サイトhttps://logback.qos.ch/manual/introduction.htmlは常に学習するのに最適な場所です。
公式サイトを見ると13章に分かれているので、読み終えるとほぼ終わりだと思います。

メイブンの紹介

ここに画像の説明を挿入します
要件、これが必要であることを示します。同氏は、logback-classic モジュールには、logback-classic.jar に加えて、slf4j-api.jar と logback-core.jar が必要であると述べました。では、これら 3 つの jar を紹介する必要があるでしょうか?
次の段落を参照してください。slf4j-api.jar は実際には logback-*jar にあることが記載されています。したがって、2 つの jar を導入するだけで済みます。(slf4j-apiがインターフェースでlogbackが実装クラスという感じです)

        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>1.2.3</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>

この時点で、アイデアを通じて具体的な導入を確認してください。logback
logback-classic には logback-core と slf4j-api が含まれます
-classic のみを導入するという意味ですか? 後でテストしてください。

HelloWorld1

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class HelloWorld1 {
    
    
    public static void main(String[] args) {
    
    
        Logger logger = LoggerFactory.getLogger("chapters.introduction.HelloWorld1");
        logger.debug("Hello world.");
    }
}

現時点では XML の設定は行っていないので、プロパティ自体でログを出力できます。
ここに画像の説明を挿入しますテストした結果、クラシック パッケージのみが問題ありません。もちろん、上位バージョンと下位バージョンにはコア パッケージがない可能性があるため、バージョンに注意する必要があります。
このデモの説明については、公式 Web サイトのドキュメントをご覧ください。

HelloWorld1 クラスは、chapters.introduction パッケージで定義されています。まず、SLF4J API、具体的には org.slf4j パッケージ内で定義されている Logger クラスと LoggerFactory クラスをインポートします。

logger の起源についてはここで説明します。slf4j API の導入では、logback API はここでは導入されていないことに注意してください。
前に述べたとおり、slf4j はインターフェイスであり、logback は実装クラスです。
インポート org.slf4j.Logger;
インポート org.slf4j.LoggerFactory;

main() メソッドの最初の行では、logger という名前の変数に、LoggerFactory クラスから静的 getLogger メソッドを呼び出して取得した Logger インスタンスが割り当てられます。このロガーの名前は「chapters.introduction.HelloWorld1」です。main メソッドは、「Hello World」を引数として渡して、このロガーのデバッグ メソッドを呼び出します。main メソッドには、「Hello world」というメッセージを含むレベル DEBUG のロギング ステートメントが含まれているとします。

この部分は、Logger logger = LoggerFactory.getLogger("chapters.introduction.HelloWorld1"); が静的メソッドから来ており、デバッグを通じて hello world を出力することを意味します。

上記の例ではログバック クラスを参照していないことに注意してください。ほとんどの場合、ロギングに関する限り、クラスは SLF4J クラスをインポートするだけで済みます。したがって、すべてではないにしても、大部分のクラスは SLF4J API を使用し、ログバックの存在を意識しません。

あるいは、上で述べた slf4j はインターフェイスであり、logback の実装は隠蔽されています。
この時点で、単純な出力ログであれば、基本的なニーズはすでに満たされています。
しかし、ニーズはあらゆる種類で奇妙で、8 部構成のエッセイが用意されており、フレームワークの最下層を徹底的に学習する必要があり、それでも学習を続けなければなりません。

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.core.util.StatusPrinter;

public class HelloWorld2 {
    
    

  public static void main(String[] args) {
    
    
    Logger logger = LoggerFactory.getLogger("chapters.introduction.HelloWorld2");
    logger.debug("Hello world.");

    // print internal state
    LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
    StatusPrinter.print(lc);
  }
}

ここに画像の説明を挿入します

Logback は、logback-test.xml および logback.xml 設定ファイル (後述) が見つからなかったため、基本的な ConsoleAppender であるデフォルト ポリシーを使用して自身を設定したと説明しています。Appender は、出力先として認識できるクラスです。アペンダーは、コンソール、ファイル、Syslog、TCP ソケット、JMS などを含むさまざまな宛先に存在します。ユーザーは、特定の状況に応じて独自のアペンダーを簡単に作成することもできます。

ログを出力すると、logback-test.xml、logback.groovy、logback.xml が見つからず、デフォルト設定の ConsoleAppender が使用されたことがわかります。
アペンダーは次のように表示できます

エラーが発生した場合、logback は内部状態をコンソールに自動的に出力することに注意してください。

前の例はかなり単純です。大規模なアプリケーションでの実際のロギングは、それほど違いはありません。ロギング ステートメントの一般的なパターンは変わりません。構成プロセスのみが異なります。ただし、ニーズに応じてログバックをカスタマイズまたは構成することが必要になる場合があります。ログバック構成については後続の章で説明します。

上記の例では、StatusPrinter.print() メソッドを呼び出して内部状態を出力するように logback に指示していることに注意してください。Logback の内部ステータス情報は、logback 関連の問題の診断に非常に役立ちます。

以下は、アプリケーションへのログインを有効にするために必要な 3 つの手順のリストです。
1.ログバック環境を設定します。これは、多かれ少なかれ洗練された方法で実行できます。これについては後で詳しく説明します。
2. ロギングを実行するすべてのクラスで、org.slf4j.LoggerFactory クラスの getLogger() メソッドを呼び出し、現在のクラス名またはクラス自体をパラメータとして渡して、Logger インスタンスを取得します。
3.このロガー インスタンスを使用するには、その出力メソッド、つまり debug()、info()、warn()、および error() メソッドを呼び出します。これにより、構成されたアペンダーにログ出力が生成されます。

3つのポイントを述べました:
1. ログバック環境の設定とは、jar を導入して xml を書くことです
2.org.slf4j.LoggerFactory クラスの getLogger() メソッド
3.log.debug log.info を出力する
これが最も簡単です。勉強を続けてください。

おすすめ

転載: blog.csdn.net/cclovezbf/article/details/132160992