カテゴリ: 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のログ出力の仕組み
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. ログのフォーマットをカスタマイズする
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のプロファイルごとにログ設定を変える
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
Springの@Scheduledアノテーション完全ガイド!初心者でもわかるcron/fixedRate/fixedDelayの違い
新規投稿
New2
Java
JavaのStreamのmaxを完全解説!初心者でもわかる最大値の取得方法
新規投稿
New3
JSP
JSPで改行やスペースを正しく表示する方法!HTMLとの連携ポイントも解説
更新記事
New4
Spring
SpringのJpaRepositoryとsaveAndFlushの使い方を完全ガイド!初心者でもわかるデータ操作
更新記事
人気記事
No.1
Java&Spring記事人気No1
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介
No.2
Java&Spring記事人気No2
Servlet
JavaのHttpSessionを徹底解説!初心者でもわかるセッション管理の基本
No.3
Java&Spring記事人気No3
JSP
JSPでCSSやJSを読み込む基本!外部ファイルのパス指定に注意しよう
No.4
Java&Spring記事人気No4
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.5
Java&Spring記事人気No5
JSP
JSPでフォームを表示して入力を受け取る基本手順をやさしく解説!初心者向けフォーム処理の入門ガイド
No.6
Java&Spring記事人気No6
JSP
JSPでif文・for文を使う方法!初心者でもわかるJavaとの違いと使い方
No.7
Java&Spring記事人気No7
Spring
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.8
Java&Spring記事人気No8
Java
JavaのArrayListクラスとgetメソッドを完全解説!初心者でもわかるリストの要素取得