カテゴリ: Spring 更新日: 2026/03/06

Spring Bootのログ設定を完全ガイド!初心者でもわかるloggingプロパティとLogbackの基本

ログ設定の要点:logging.* と Logback(XML不要で始める)
ログ設定の要点:logging.* と Logback(XML不要で始める)

先生と生徒の会話形式で理解しよう

生徒

「Spring Bootのログ出力って、何も設定しなくても表示されるんですが、あれってどこで制御されてるんですか?」

先生

「Spring Bootでは、デフォルトでLogbackというロガーが組み込まれていて、loggingというプロパティを使って設定できるようになっていますよ。」

生徒

「XMLファイルとか用意しなくてもいいんですか?初心者だとXMLはちょっと難しくて…」

先生

「もちろんです!まずはapplication.propertiesだけで始められる基本設定から覚えていきましょう。」

1. Spring Bootのログ出力の仕組み

1. Spring Bootのログ出力の仕組み
1. Spring Bootのログ出力の仕組み

Spring Bootのログは、デフォルトでLogbackというロギングフレームワークを使用しています。System.out.println()の代わりにLoggerを使ってログを出力することで、ログレベルの制御やログファイルへの出力が簡単に行えます。

Spring Bootでは、特別な設定をしなくても、ログ出力が標準で有効になっており、ログレベルや出力先をプロパティファイルでカスタマイズできます。

2. ログレベルの基本と設定方法

2. ログレベルの基本と設定方法
2. ログレベルの基本と設定方法

ログには以下のようなレベルがあり、重要度が高い順に制御できます:

  • ERROR:致命的なエラー
  • WARN:警告
  • INFO:通常の情報(デフォルト)
  • DEBUG:詳細なデバッグ情報
  • TRACE:最も詳細なログ

たとえば、すべてのログレベルをDEBUGに設定したい場合は、以下のようにします。


logging.level.root=DEBUG

特定のパッケージだけに設定することもできます。


logging.level.com.example=TRACE

こうすることで、不要なログを減らし、必要な情報だけを見やすく整理できます。

3. ログの出力先を指定する

3. ログの出力先を指定する
3. ログの出力先を指定する

ログはデフォルトでコンソールに出力されますが、ログファイルにも保存できます。application.propertiesで簡単に設定可能です。


logging.file.name=app.log
logging.file.path=logs

上記の設定では、logs/app.logというファイルにログが出力されます。ファイル名だけ指定した場合は、プロジェクトのルートに作成されます。

4. ログのフォーマットをカスタマイズする

4. ログのフォーマットをカスタマイズする
4. ログのフォーマットをカスタマイズする

ログの形式(ログフォーマット)もカスタマイズ可能です。たとえば、ログにタイムスタンプやスレッド名を含めたい場合、以下のようにします。


logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n

この例では、日付・スレッド・ログレベル・クラス名・メッセージが出力されるようになります。

5. XMLファイルなしでLogbackを使う方法

5. XMLファイルなしでLogbackを使う方法
5. XMLファイルなしでLogbackを使う方法

通常Logbackの設定はlogback.xmlに記述しますが、Spring BootではXMLを使わなくても設定できます。

プロパティファイルだけで始めたい場合、logging.levellogging.patternなどを使えば十分な機能をカバーできます。

ただし、ログのローテーションやアペンダの追加など、より高度な制御が必要な場合はlogback-spring.xmlを使用すると良いでしょう。

6. 標準のログ出力例とLoggerの使い方

6. 標準のログ出力例とLoggerの使い方
6. 標準のログ出力例とLoggerの使い方

Javaコードの中では、LoggerFactoryを使ってロガーを生成し、ログ出力を行います。


import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

@Component
public class SampleLogger {

    private static final Logger logger = LoggerFactory.getLogger(SampleLogger.class);

    public void execute() {
        logger.info("INFOログです");
        logger.debug("DEBUGログです");
        logger.warn("WARNログです");
        logger.error("ERRORログです");
    }
}

logger.debug()logger.info()などを使い分けることで、ログの詳細度を適切に制御できます。

7. Spring Bootのプロファイルごとにログ設定を変える

7. Spring Bootのプロファイルごとにログ設定を変える
7. Spring Bootのプロファイルごとにログ設定を変える

開発環境と本番環境では、ログの出力レベルを変えることが一般的です。Spring Bootではプロファイルを使って設定ファイルを切り替えることで、環境別のログ設定が可能です。

たとえば、開発用にはapplication-dev.propertiesを作成して次のように設定します。


logging.level.root=DEBUG

本番用にはapplication-prod.propertiesを作成して、必要最低限のログだけに制限します。


logging.level.root=ERROR

起動時には以下のように指定します。


--spring.profiles.active=dev

プロファイルごとの設定を活用することで、安全で効率的なログ運用ができます。

8. よくあるログのトラブルと対策

8. よくあるログのトラブルと対策
8. よくあるログのトラブルと対策

ログが出力されない場合や、思ったより大量に出力される場合は、以下をチェックしてみましょう。

  • ログレベル:想定より低いレベルになっていないか?
  • パッケージ指定:正しいパッケージ名でレベル設定されているか?
  • ログ出力先:ファイルに出力される設定になっていないか?

ログはシステムの状態を知るための重要な手がかりです。適切な設定で、トラブルを素早く発見しましょう。

カテゴリの一覧へ
新着記事
New1
Spring
SpringDataJPAのJPAクエリメソッド「OrderBy」の使い方を完全ガイド!初心者向け解説
更新記事
New2
Spring
Javaの@RequestParamアノテーションの使い方を徹底解説!初心者でもわかるリクエストパラメータの基本と応用
更新記事
New3
Java
Javaのラッパークラスとボクシングを徹底解説!型変換の仕組みを知る
新規投稿
New4
Java
Javaの抽象クラス(abstract)を完全ガイド!継承と設計のルールを学ぶ
更新記事
人気記事
No.1
Java&Spring記事人気No1
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Spring
Springの@Componentアノテーションの使い方を徹底解説!初心者でもわかるSpring Boot入門
No.3
Java&Spring記事人気No3
Java
JavaのRuntimeExceptionを完全解説!初心者でもわかるjava.langパッケージの基礎
No.4
Java&Spring記事人気No4
Spring
Spring BootのMultipartFile入門:ファイルアップロード・ダウンロードの実装方法と制限設定
No.5
Java&Spring記事人気No5
Spring
Spring BootのJakarta移行ガイド!初心者向けjavax→jakarta変更ポイント徹底解説
No.6
Java&Spring記事人気No6
Spring
Thymeleaf(タイムリーフ)入門!初心者でもわかるSpring Bootとテンプレートエンジンの使い方
No.7
Java&Spring記事人気No7
Spring
Javaの@PreAuthorizeアノテーションを完全ガイド!初心者でもわかるメソッドセキュリティ設定
No.8
Java&Spring記事人気No8
Spring
SpringのBindingResultを完全ガイド!初心者でもわかる入力チェックとエラー処理