メインコンテンツまでスキップ

Application Log(Spring Boot)

Spring Boot のデフォルト状態をサンプルにアプリケーションログを紹介

Spring Boot では、デフォルトでログバック(Logback)が使用されますが、他のログライブラリ(Log4j など)を使用することもできます。以下では、ログ出力の方法について説明します。

ログメッセージの出力方法

Spring Boot では、org.slf4j.Logger インターフェースを使用してログメッセージを出力します。
各クラスで LoggerFactory.getLogger(Class)メソッドを使用して Logger インスタンスを取得し、その Logger を使用してログメッセージを出力します。
以下は、Logger を使用したログメッセージの出力例です。

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class UserController {
private static final Logger logger = LoggerFactory.getLogger(MyClass.class);

public void doSomething() {
logger.info("infoメッセージ");
logger.error("errorメッセージ");
}
}

ログの出力先は、設定によって決まります。デフォルトの設定では、ログはコンソール(標準出力)に出力されますが、ログファイルに出力することも可能です。

ログの出力(コンソール)

ログの出力先設定

ログの出力先は Logback の設定ファイルで指定します。
logback-spring.xml という名前のファイルをクラスパスのルートに配置して使用します。
Spring Boot プロジェクトの場合、logback-spring.xml を使用すると、Spring Boot のプロファイル設定などを考慮してより柔軟にログを設定できます。

以下は、ログをファイルに出力する例です。logback-spring.xml ファイルに次のような設定を追加することで、ログをファイルに出力できます。

logback-spring.xml
<configuration>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<!-- ログの出力先ファイルパスを指定 -->
<file>logs/application.log</file>
<encoder>
<!-- ログのフォーマットを指定 -->
<pattern>%date{ISO8601} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>

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

logback-spring.xml で指定した logs/application.log にログが出力されます。

ログの出力(ファイル)

ログレベルの設定

Spring Boot は、アプリケーションのログを管理するための機能を提供します。ログレベルの設定により、どのレベル以上のログを出力するかを制御できます。Spring Boot では、以下のログレベルが用意されています(レベルが低い順から高い順に並んでいます)

  • TRACE: 最も詳細なログレベルで、アプリケーションの実行中に発生する細かな情報を出力します。通常、デバッグ目的で使用します。

  • DEBUG: デバッグ情報を出力します。アプリケーションの動作を追跡する際に有用ですが、通常は開発環境でのみ有効にします。

  • INFO: 一般的な情報メッセージを出力します。アプリケーションの実行状態を把握するのに役立ちます。

  • WARN: 警告メッセージを出力します。問題が発生していないが、将来的に問題になる可能性がある場合に使用します。

  • ERROR: エラーメッセージを出力します。重要な問題が発生した場合に使用します。

  • FATAL: 致命的なエラーメッセージを出力します。アプリケーションの異常終了など、非常に重大な問題が発生した場合に使用します。

Spring Boot では、これらのログレベルを application.properties , logback-spring.xml 等でで設定することができます。

application.properties を使用する場合

application.properties
logging.level.root=INFO

logback-spring.xml を使用する場合

logback-spring.xml
    <root level="INFO">
<appender-ref ref="" />
</root>

これらは Spring Boot のログ出力の基本的な方法です。
詳細なログ設定やカスタマイズについては、使用しているログライブラリ(Logback、Log4j など)のドキュメントや Spring Boot の公式ドキュメントを参照してください。