ログ
Spring Boot には、通常 Spring Framework の spring-jcl モジュールによって提供される Commons Logging API を除いて、必須のログ依存関係はありません。Logback (英語)   を使用するには、それと spring-jcl をクラスパスに含める必要があります。これを行うための推奨される方法は、スターターを使用することです。スターターはすべて spring-boot-starter-logging に依存します。Web アプリケーションの場合は、ロギングスターターに推移的に依存するため、spring-boot-starter-web のみが必要です。Maven を使用する場合、次の依存関係によってログが追加されます。
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>Spring Boot には、クラスパスの内容に基づいてログ記録を構成しようとする LoggingSystem (Javadoc)  抽象化があります。Logback が使用可能な場合は、これが最初の選択肢になります。
 ロギングに加える必要がある唯一の変更がさまざまなロガーのレベルを設定することである場合、次の例に示すように、"logging.level" プレフィックスを使用して application.properties でそれを行うことができます。
- プロパティ 
- YAML 
logging.level.org.springframework.web=debug
logging.level.org.hibernate=errorlogging:
  level:
    org.springframework.web: "debug"
    org.hibernate: "error"logging.file.name を使用して、(コンソールに加えて) ログが書き込まれるファイルの場所を設定することもできます。
 ログシステムのより詳細な設定を構成するには、対象の LoggingSystem (Javadoc)  でサポートされているネイティブ構成形式を使用する必要があります。デフォルトでは、Spring Boot はシステムのデフォルトの場所 (Logback の場合は classpath:logback.xml など) からネイティブ構成を取得しますが、logging.config プロパティを使用して構成ファイルの場所を設定できます。
ロギング用に Logback を構成する
application.properties で実現できる以上のカスタマイズを logback に適用する必要がある場合は、標準の logback 構成ファイルを追加する必要があります。logback が見つけられるように、クラスパスのルートに logback.xml ファイルを追加できます。Spring Boot Logback 拡張を使用する場合は、logback-spring.xml を使用することもできます。
| Logback のドキュメントには、構成 (英語) を詳細にカバーする専用セクションがあります (英語) 。 | 
Spring Boot は、独自の構成で included にできる多数の logback 構成を提供します。これらのインクルードは、特定の一般的な Spring Boot 規則を再適用できるように設計されています。
 以下のファイルが org/springframework/boot/logging/logback/ で提供されています。
- defaults.xml- 変換ルール、パターンプロパティ、一般的なロガー構成を提供します。
- console-appender.xml-- CONSOLE_LOG_PATTERNを使用して- ConsoleAppender(英語) を追加します。
- structured-console-appender.xml-- CONSOLE_LOG_STRUCTURED_FORMATに構造化ログを使用して- ConsoleAppender(英語) を追加します。
- file-appender.xml- 適切な設定で- FILE_LOG_PATTERNと- ROLLING_FILE_NAME_PATTERNを使用して- RollingFileAppender(英語) を追加します。
- structured-file-appender.xml-- FILE_LOG_STRUCTURED_FORMATの構造化ログ機能を備えた- ROLLING_FILE_NAME_PATTERNを使用して- RollingFileAppender(英語) を追加します。
 さらに、以前のバージョンの Spring Boot との互換性のために、レガシー base.xml ファイルが提供されています。
 典型的なカスタム logback.xml ファイルは次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
	<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
	<include resource="org/springframework/boot/logging/logback/console-appender.xml" />
	<root level="INFO">
		<appender-ref ref="CONSOLE" />
	</root>
	<logger name="org.springframework.web" level="DEBUG"/>
</configuration>logback 構成ファイルでは、LoggingSystem (Javadoc)  が自動的に作成するシステムプロパティも使用できます。
- ${PID}: 現在のプロセス ID。
- ${LOG_FILE}:- logging.file.nameが Boot の外部構成で設定されたかどうか。
- ${LOG_PATH}:- logging.file.path(ログファイルが存在するディレクトリを表す)が Boot の外部設定で設定されたかどうか。
- ${LOG_EXCEPTION_CONVERSION_WORD}:- logging.exception-conversion-wordが Boot の外部構成で設定されたかどうか。
- ${ROLLING_FILE_NAME_PATTERN}:- logging.pattern.rolling-file-nameが Boot の外部構成で設定されたかどうか。
 また、Spring Boot は、カスタム Logback コンバーターを使用して、コンソール上に(ログファイルではなく)素敵な ANSI カラーターミナル出力を提供します。例については、defaults.xml 構成の CONSOLE_LOG_PATTERN を参照してください。
Groovy がクラスパス上にある場合、logback.groovy で Logback も構成できるはずです。存在する場合、この設定が優先されます。
| Spring 拡張は、Groovy 構成ではサポートされていません。 logback-spring.groovyファイルは検出されません。 | 
ファイルのみの出力用に Logback を構成する
 コンソールロギングを無効にし、出力のみをファイルに書き込む場合は、次の例に示すように、console-appender.xml ではなく file-appender.xml をインポートするカスタム logback-spring.xml が必要です。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
	<include resource="org/springframework/boot/logging/logback/defaults.xml" />
	<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/>
	<include resource="org/springframework/boot/logging/logback/file-appender.xml" />
	<root level="INFO">
		<appender-ref ref="FILE" />
	</root>
</configuration> 次の例に示すように、logging.file.name を application.properties または application.yaml に追加する必要もあります。
- プロパティ 
- YAML 
logging.file.name=myapplication.loglogging:
  file:
    name: "myapplication.log"ロギング用に Log4j を構成する
Spring Boot は、クラスパス上にある場合、ロギング構成用に Log4j 2 [Apache] (英語)   をサポートします。依存関係を組み立てるためにスターターを使用する場合は、Logback を除外し、代わりに Log4j 2 を含める必要があります。スターターを使用しない場合は、Log4j 2 に加えて (少なくとも) spring-jcl を提供する必要があります。
推奨されるパスは、多少のギミックが必要ですが、スターターを経由することです。以下の例は、Maven でスターターを設定する方法を示しています。
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter</artifactId>
	<exclusions>
		<exclusion>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-logging</artifactId>
		</exclusion>
	</exclusions>
</dependency>
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>Gradle は、スターターをセットアップするためのいくつかの異なる方法を提供します。1 つの方法は、モジュールの交換 (英語) を使用することです。これを行うには、次の例に示すように、Log4j 2 スターターへの依存関係を宣言し、デフォルトのロギングスターターが発生した場合は Log4j2 スターターに置き換える必要があることを Gradle に通知します。
dependencies {
	implementation "org.springframework.boot:spring-boot-starter-log4j2"
	modules {
		module("org.springframework.boot:spring-boot-starter-logging") {
			replacedBy("org.springframework.boot:spring-boot-starter-log4j2", "Use Log4j2 instead of Logback")
		}
	}
}| Log4j スターターは、共通のロギング要件(Tomcat で java.util.loggingを使用するが Log4j 2 を使用して出力を構成するなど)の依存関係を収集します。 | 
| java.util.loggingを使用して実行されるデバッグロギングが Log4j 2 にルーティングされるようにするには、java.util.logging.managerシステムプロパティをorg.apache.logging.log4j.jul.LogManagerに設定して、JDK ロギングアダプター [Apache] (英語)  を構成します。 | 
YAML または JSON を使用して Log4j 2 を構成する
デフォルトの XML 構成形式に加えて、Log4j 2 は YAML および JSON 構成ファイルもサポートしています。別の構成ファイル形式を使用するように Log4j 2 を構成するには、次の例に示すように、適切な依存関係をクラスパスに追加し、選択したファイル形式に合わせて構成ファイルに名前を付けます。
| フォーマット | 依存関係 | ファイル名 | 
|---|---|---|
| YAML | 
 | 
 | 
| JSON | 
 | 
 | 
複合構成を使用して Log4j2 を構成する
Log4j 2 は、複数の構成ファイルを 1 つの複合構成に結合することをサポートしています。Spring Boot でこのサポートを使用するには、1 つ以上の 2 次構成ファイルの場所を使用して logging.log4j2.config.override を構成します。プライマリのソースが Spring Boot のデフォルト、log4j.xml などの標準の場所、logging.config プロパティで構成された場所であるかどうかに関係なく、セカンダリ構成ファイルはプライマリ構成とマージされます。
| Log4j2 オーバーライド構成ファイルの場所には、 |