【Java】SpringBoot で @slf4j を用いてログを出力してみる(Lombok)

Spring Bootは、Spring Frameworkと同様にSLF4JとLogbackを使用してログ出力を行います

@Slf4j アノテーションはLombokを使用して、クラスにLoggerを追加する際に非常に便利です

以下に、Spring Bootで @Slf4j を使ってログ出力を行う例を示します

1. プロジェクトの設定

まず、プロジェクトの依存関係にLombokを追加します

Mavenプロジェクトの場合、pom.xml ファイルに以下の依存関係を追加します

■ pom.xml

<dependencies>
    <!-- 他の依存関係があればここに追加 -->

    <!-- Lombok -->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.22</version> <!-- 最新のバージョンに変更しても構いません -->
        <scope>provided</scope>
    </dependency>
</dependencies>

Gradleプロジェクトの場合、build.gradleファイルに以下の依存関係を追加します

■ build.gradle

plugins {
    id 'org.springframework.boot' version '2.6.3'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter'
    implementation 'org.projectlombok:lombok:1.18.22' // 最新のバージョンに変更しても構いません
    annotationProcessor 'org.projectlombok:lombok:1.18.22'
}

test {
    useJUnitPlatform()
}

2. クラスに@Slf4jアノテーションを追加

@Slf4jアノテーションをクラスに追加することで、Loggerが自動的に生成されます

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

@Service
@Slf4j
public class MyService {

    public void doSomething() {
        log.debug("Debug message");
        log.info("Info message");
        log.warn("Warning message");
        log.error("Error message");
    }
}

3. application.properties/application.ymlでログの設定

src/main/resources フォルダに application.properties または application.yml ファイルを作成し、ログの設定を行うことができます

例えば、ログのファイル出力先やログレベルを設定できます

# ログファイルの設定
logging.file.name=mylog.log

# ログレベルの設定
logging.level.root=INFO

上記の例では、ログは mylog.log ファイルに出力され、ルートのログレベルは INFO に設定されています。

4. ログメッセージの使用

@Slf4j を使ったクラス内で、Loggerを通じてログメッセージを記述できます

Loggerはdebug、info、warn、error の4つのレベルで利用できます

ログメッセージはそれぞれのメソッドに対応しています。


これで、Spring Bootプロジェクトで @Slf4j を使用してログ出力を簡単に実装できます

ログの設定はapplication.properties または application.yml ファイルで調整でき、標準のログ出力以外にもファイルや他のログバックエンドにログを出力することも可能です

Lombokを導入することで冗長なコードを減らし、クラスにLoggerを手動で追加する手間を省くことができますよ!

ぜひ参考ください

ではっ

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

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