ホームページ  >  記事  >  Java  >  SpringBoot ログ ファイルのハンドルを取得する方法

SpringBoot ログ ファイルのハンドルを取得する方法

WBOY
WBOY転載
2023-05-12 11:46:051254ブラウズ

    SpringBoot ログ ファイル

    1. ログの用途について

    ログは重要な部分ですプログラムがエラーを報告し、コンソールを開いてログを表示できない場合を想像してください。エラーの原因を見つけることができますか?

    私たちにとって、ログの主な目的は、トラブルシューティングと問題の特定です。問題の発見と特定に加えて、ログを通じて次の機能も実現できます。

    • ユーザーのログイン ログを記録し、ユーザーが正常にログインしたか、それとも悪意を持ってユーザーをクラッキングしたかの分析を容易にします

    • データ復旧を容易にし、オペレーターを特定するためにシステムの操作ログを記録します。

    • 将来の最適化プログラムを容易にするためにプログラムの実行時間を記録します。データ サポートを提供するため

    2. ログの使用方法

    ##Spring Boot プロジェクトは、以下に示すように、開始時にデフォルトでログ出力されます。

    SpringBoot ログ ファイルのハンドルを取得する方法上記の情報から次のことがわかります:

      Spring Boot にはロギング フレームワークが組み込まれています
    • デフォルトでは、出力ログは開発者と印刷によって定義されていません。では、開発者はプログラム内で印刷ログをどのように定義するのでしょうか?
    • ログはデフォルトでコンソールに出力されますが、コンソール ログを保存することはできません。ログを永久に保存するにはどうすればよいですか?
    • 3. カスタマイズされたログ出力

    開発者がログ出力をカスタマイズするための実装手順:

      プログラムで取得します。
    • ログ オブジェクトの関連構文を使用して、印刷する内容を出力します
    • 3.1 プログラムでログ オブジェクトを取得します
    private static final Logger log = LoggerFactory.getLogger(UserController.class);
    ログ ファクトリは、ログの所有権クラスを知り、より便利かつ直観的に問題を特定できるように、各クラスのタイプを渡す必要があります。

    注: ロガー オブジェクトは次のものに属します。 org.slf4j パッケージをインポートしないでください。 間違っています。

    SpringBoot ログ ファイルのハンドルを取得する方法3.2 ログ オブジェクトを使用してログを出力します。

    ログ オブジェクトを出力するには、さまざまな方法があります。 info メソッドを使用して、ログ (
    @Controller
    @ResponseBody
    public class UserController {
        private static final Logger log = LoggerFactory.getLogger(UserController.class);
        @RequestMapping("/sayhi")
        public void sayHi() {
            log.trace("trace");
            log.debug("debug");
            log.info("info");
            log.warn("warn");
            log.error("error");
        }
    }

    SpringBoot ログ ファイルのハンドルを取得する方法4) を出力できます。 ログ レベル

    #4.1 ログ レベルの用途は何ですか?

      ログ レベルは、重要な情報をフィルタリングするのに役立ちます。たとえば、ログ レベルをエラーに設定すると、プログラムのエラー ログのみが表示されます。通常のデバッグ ログの場合および業務ログは無視して構いません。これにより、開発者のスクリーニングにかかる​​時間を節約できます。
    • ログ レベルは、プログラムがさまざまな環境でログを出力する必要があるかどうかを制御できます。たとえば、開発環境では非常に詳細な情報が必要です。本番環境ではパフォーマンスとセキュリティを維持するために少量のログが出力されますが、そのような要件はログ レベルによって実現できます
    • #4.2 ログ レベルの分類と使用
    ログ レベルは次のように分類されます。

    trace: トレース、つまり少し、最も低いレベル
    • debug: デバッグ時に重要な情報を出力します。 required
    • info: 通常の印刷情報 (デフォルトのログレベル)
    • warn: 警告: 使用には影響しませんが、注意が必要です
    • error: エラー メッセージ、高レベルのエラー ログ メッセージ
    • fatal: 致命的、コード例外によりプログラムの実行を終了させるイベント
    • ログ レベルの順序:

    上位になるほど、受信される情報は少なくなります。warn が設定されている場合は、warn とSpringBoot ログ ファイルのハンドルを取得する方法

    ログ レベル設定

    logging:
      level:
        root: error
    デフォルトのログ出力レベル

    ログ設定をクリアします。設定ファイルを開き、コンソール出力を観察します。 ログ レベル

    # は、デフォルトのログ出力レベルが info

    であるという結論に達します。ローカル ログ レベルとグローバル ログ レベルの設定がある場合、ローカル ログにアクセスすると、ローカル ログが使用されるレベルになります。つまり、ローカル ログの優先度はグローバル ログの優先度よりも高くなります。

    5. ログの永続性

    上記のログはコンソール上に出力されますが、本番環境では問題が発生した後に問題を追跡できるように、ログを保存する必要があります。ログを保存するプロセスは永続化と呼ばれます。

    日付を永続化したい場合は、ログの保存ディレクトリを指定するだけで済みます。構成ファイルに追加するか、ログを指定します。ファイル名を保存すると、Spring Boot はコンソール ログを対応するディレクトリまたはファイルに書き込みます。

    ログ ファイルの保存パスを構成します。

    logging:
      file:
        path: D:\rizhi

    Theエスケープ文字を含む保存されたパス アスペクト設定では、この

    /

    を区切り文字として使用できます。

    Windows でどうしても区切り文字を使用する場合は、\

    エスケープ文字を使用して

    をエスケープする必要があります。

    配置日志文件的文件名:

    logging:
      file:
        name: D:/rizhi/logger/spring.log

    6. 更简单的日志输出–lombok

    每次使用LoggerFactory.getLogger很繁琐,且每个类都添加一遍,也很麻烦。这里的lombok是一种更好的日志输出方式

    • 添加lombok框架支持

    • 使用@slf4j注解输出日志

    6.1 添加 lombok 依赖

    首先要安装一个插件:

    SpringBoot ログ ファイルのハンドルを取得する方法

    然后再pom.xml页面右键、

    SpringBoot ログ ファイルのハンドルを取得する方法

    SpringBoot ログ ファイルのハンドルを取得する方法

    SpringBoot ログ ファイルのハンドルを取得する方法

    最后重新添加依赖就可以了

    SpringBoot ログ ファイルのハンドルを取得する方法

    6.2 输出日志

    使用@Slf4j注解,在程序中使用log对象即可输入日志并且只能使用log对象才能输出,这是lombok提供的对象名

    6.3 lombok原理解释

    lombok 能够打印⽇志的密码就在 target ⽬录⾥⾯,target 为项⽬最终执⾏的代码,查看 target ⽬录我们可以发现:

    SpringBoot ログ ファイルのハンドルを取得する方法

    这里的@Slf4j注解变成了一个对象。

    下面是java程序的运行原理:

    SpringBoot ログ ファイルのハンドルを取得する方法

    6.4 lombok更多注解说明

    基本注解

    注解 作用
    @Getter 自动添加get方法
    @Setter 自动添加set方法
    @ToString 自动添加toString方法
    @EqualsAndHashCode 自动添加equals和hasCode方法
    @NoArgsConstructor 自动添加无参构造方法
    @AllArgsConstructor 自动添加全属性构造方法,顺序按照属性的定义顺序
    @NonNull 属性不能为null
    @RequiredArgsConstructor 自动添加必须属性的构造方法,final + @NonNull的属性为需

    组合注解:

    注解 作用
    @Data @Getter+@Setter+EqualsAndHashCode+@RequiredArgsConstructor+@NoArgsConstructor

    日志注解

    注解 作用
    @Slf4j 添加一个名为log的对象

    以上がSpringBoot ログ ファイルのハンドルを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。