Webエンジニアのメモ帳

技術的な話を中心に書いています。

【Java】Slf4jを使ってログ出力を行う

Javaでは「Slf4j」というライブラリを使うと非常に簡単にログ出力ができます。

この記事ではSlf4jの使い方を説明します。

Slf4jの使い方

build.gradleの設定

まずは、build.gradleのdependenciesのところに以下を追加します。

dependencies {
  compileOnly 'org.projectlombok:lombok:1.18.10'
  annotationProcessor 'org.projectlombok:lombok:1.18.10'
  implementation 'org.slf4j:slf4j-api:1.7.25'
  implementation 'org.slf4j:slf4j-simple:1.7.25'
}

mavenを使っている方は、pom.xmlに上と同様に記述してください。

ログ出力を行う

つぎに、ログ出力を行うコードを実装します。

@Slf4jアノテーションを付与するだけで、ログ出力を行うメソッドを使うことができます。

import lombok.extern.slf4j.Slf4j;

@Slf4j
public class Sample {
  public void sampleLog() {
    log.info("sample log!");
  }
}

補足 追加するライブラリについて

slf4jのライブラリについて

build.gradleのdependenciesには以下の2つのライブラリを記述しています。

implementation 'org.slf4j:slf4j-api:1.7.25'
implementation 'org.slf4j:slf4j-simple:1.7.25'

この2つに関して、slf4j-apiはインターフェース(ログファサードライブラリと呼ばれる)でslf4j-simpleは実装となっています。

Spring Bootを使った開発では、抽象メソッドだけ持たせたインターフェースと、それを実装したクラスを作成するというような手法が取られますが、これと同じ関係です。

実装はslf4j-simple以外の種類を使うことも可能で、例えばlogback-classicなどはその一つです。

Lombokのライブラリについて

build.gradleのdependenciesには、Slf4jのライブラリだけでなく、以下のライブラリも記述しています。

compileOnly 'org.projectlombok:lombok:1.18.10'
annotationProcessor 'org.projectlombok:lombok:1.18.10'

これはLombokというライブラリが使えるようにするための記述です。

LombokはGetterやSetterの自動生成に使えるライブラリですが、実はLombokが使えないと@Slf4jアノテーションも使えません。

そのため、今回のコードでもLombokを使えるようにしています。