Spring-boot-logging

提供:Dev Guides
移動先:案内検索

Spring Boot-ロギング

Spring Boot uses Apache Commons logging for all internal logging. Spring Boot’s default configurations provides a support for the use of Java Util Logging, Log4j2, and Logback. Using these, we can configure the console logging as well as file logging.

Spring Boot Startersを使用している場合、Logbackはログの適切なサポートを提供します。 また、Logbackは、Common Logging、Util Logging、Log4J、およびSLF4Jの適切なサポートの使用も提供します。

ログ形式

デフォルトのSpring Boot Log形式は、以下のスクリーンショットに示されています。

Spring Boot Log Format

あなたに次の情報を提供します-

  • ログの日付と時刻を示す*日付*および*時刻*
  • *ログレベル*はINFO、ERRORまたはWARNを表示します
  • *プロセスID *
  • ---セパレーター
  • *スレッド名*は角括弧[]で囲まれています
  • Sourceクラス名を示す Logger Name
  • ログメッセージ

コンソールログ出力

デフォルトのログメッセージはコンソールウィンドウに出力されます。 デフォルトでは、「INFO」、「ERROR」、および「WARN」のログメッセージがログファイルに出力されます。

デバッグレベルログを有効にする必要がある場合は、以下に示すコマンドを使用して、アプリケーションの起動時にデバッグフラグを追加します-

java –jar demo.jar --debug

ここに示すように、application.propertiesファイルにデバッグモードを追加することもできます-

debug = true

ファイルログ出力

デフォルトでは、すべてのログはファイルではなくコンソールウィンドウに出力されます。 ファイル内のログを印刷する場合は、application.propertiesファイルでプロパティ logging.file または logging.path を設定する必要があります。

以下に示すプロパティを使用して、ログファイルのパスを指定できます。 ログファイル名はspring.logであることに注意してください。

logging.path =/var/tmp/

以下に示すプロパティを使用して、独自のログファイル名を指定できます-

logging.file =/var/tmp/mylog.log

-サイズが10 MBに達すると、ファイルは自動的に回転します。

ログレベル

Spring Bootは、「TRACE」、「DEBUG」、「INFO」、「WARN」、「ERROR」、「FATAL」、「OFF」などのすべてのロガーレベルをサポートしています。 以下に示すように、application.propertiesファイルでルートロガーを定義できます-

logging.level.root = WARN

注意-ログバックは「致命的な」レベルのログをサポートしていません。 「エラー」レベルのログにマッピングされます。

ログバックを構成する

Logbackは、Spring Boot Log構成を処理するXMLベースの構成をサポートしています。 ロギング構成の詳細は、 logback.xml ファイルで構成されます。 logback.xmlファイルは、クラスパスの下に配置する必要があります。

以下に示すコードを使用して、Logback.xmlファイルでROOTレベルのログを構成できます-

<?xml version = "1.0" encoding = "UTF-8"?>
<configuration>
   <root level = "INFO">
   </root>
</configuration>

以下に示すLogback.xmlファイルでコンソールアペンダーを構成できます。

<?xml version = "1.0" encoding = "UTF-8"?>
<configuration>
   <appender name = "STDOUT" class = "ch.qos.logback.core.ConsoleAppender"></appender>
   <root level = "INFO">
      <appender-ref ref = "STDOUT"/>
   </root>
</configuration>

以下に示すコードを使用して、Logback.xmlファイルでファイルアペンダーを構成できます。 ファイルアペンダー内のログファイルパスを指定する必要があることに注意してください。

<?xml version = "1.0" encoding = "UTF-8"?>
<configuration>
   <appender name = "FILE" class = "ch.qos.logback.core.FileAppender">
      <File>/var/tmp/mylog.log</File>
   </appender>
   <root level = "INFO">
      <appender-ref ref = "FILE"/>
   </root>
</configuration>

以下に示すコードを使用して、 logback.xml ファイルでログパターンを定義できます。 また、以下に示すコードを使用して、コンソールまたはファイルログアペンダー内でサポートされるログパターンのセットを定義することもできます-

<pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.sss'Z'}] [%C] [%t] [%L] [%-5p] %m%n</pattern>

完全なlogback.xmlファイルのコードを以下に示します。 これをクラスパスに配置する必要があります。

<?xml version = "1.0" encoding = "UTF-8"?>
<configuration>
   <appender name = "STDOUT" class = "ch.qos.logback.core.ConsoleAppender">
      <encoder>
         <pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.sss'Z'}] [%C] [%t] [%L] [%-5p] %m%n</pattern>
      </encoder>
   </appender>

   <appender name = "FILE" class = "ch.qos.logback.core.FileAppender">
      <File>/var/tmp/mylog.log</File>
      <encoder>
         <pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.sss'Z'}] [%C] [%t] [%L] [%-5p] %m%n</pattern>
      </encoder>
   </appender>

   <root level = "INFO">
      <appender-ref ref = "FILE"/>
      <appender-ref ref = "STDOUT"/>
   </root>
</configuration>

以下のコードは、Spring Bootメインクラスファイルにslf4jロガーを追加する方法を示しています。

package com.finddevguides.demo;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {
   private static final Logger logger = LoggerFactory.getLogger(DemoApplication.class);

   public static void main(String[] args) {
      logger.info("this is a info message");
      logger.warn("this is a warn message");
      logger.error("this is a error message");
      SpringApplication.run(DemoApplication.class, args);
   }
}

あなたがコンソールウィンドウで見ることができる出力はここに示されています-

Logger Console Window

あなたがログファイルで見ることができる出力はここに示されています-

ログ出力