【Spring Boot】logback-spring.xmlはどんなファイルなんだ?ちょっと調べてみた(Datadog例)

logback-spring.xmlはSpring Boot アプリケーションで使用されるロギング設定ファイルで、Logback を設定するために使用します

Logback は、Spring Boot の確実なロギング フレームワークで、XML 形式で詳細なログ設定を行います


1. logback-spring.xmlの基本的な構造

<configuration>
    <!-- コンソールへのログ出力 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- ログレベル設定(全てのログレベルをINFOに設定) -->
    <root level="INFO">
        <appender-ref ref="CONSOLE" />
    </root>
</configuration>

このファイルでは、以下の要素を設定します

  • Appender : ログの出力先を定義します(例:コンソール、ファイル、Datadog など)
  • エンコーダ: ログのフォーマットを定義します(例:タイムスタンプ、スレッド名、ログレベルなど)
  • Logger : ログの出力元クラスやパッケージごとのログレベルを設定します
  • ルート: ルートレベルのロガー設定です。アプリケーション全体のログレベルを決定します

Datadogへのログ出力を行う場合はDatadogのカスタムAppenderをlogback-spring.xml追加することができます


2. Datadog連携の例

Datadogへのログ送信例

<configuration>
    <!-- Datadogへのログ送信 -->
    <appender name="DATADOG" class="com.datadoghq.logback.DatadogAppender">
        <apiKey>your_datadog_api_key</apiKey>  <!-- DatadogのAPIキー -->
        <source>springboot</source>             <!-- ログのソース(アプリケーション名など) -->
        <service>my-springboot-app</service>    <!-- サービス名 -->
        <host>my-app-host</host>                <!-- ホスト名 -->
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- ルートロガー(すべてのログをDatadogに送信) -->
    <root level="INFO">
        <appender-ref ref="DATADOG" />
    </root>
</configuration>

3. よく使われる設定例

コンソールへのログ出力とファイルへのログ出力

<configuration>
    <!-- コンソールへのログ出力 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- ファイルへのログ出力 -->
    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>logs/app.log</file>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- ルートロガー(コンソールとファイルにログ出力) -->
    <root level="INFO">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </root>
</configuration>

特定パッケージのログレベルを変更

<configuration>
    <!-- 特定のパッケージに対してデバッグレベルのログ出力 -->
    <logger name="com.example.myapp" level="DEBUG" />
    
    <root level="INFO">
        <appender-ref ref="CONSOLE" />
    </root>
</configuration>

logback-spring.xmlはSpring Boot アプリケーションのロギング動作を細かくカスタマイズできる強力なツールです
Datadog との連携を行う際にも、このファイルで正しく設定することで、必要なログ情報を収集・送信できます

是非参考ください!

是非フォローしてください

最新の情報をお伝えします