nikkie-ftnextの日記

イベントレポートや読書メモを発信

SLF4J + logback のJavaプロジェクトを作る(素振りの整地)

はじめに

ぽむー🎀 nikkieです。

Javaでのloggingを練習したく、プロジェクトを作ります。

目次

IntelliJ IDEAでプロジェクト作成

logging-practiceプロジェクトを作りました

  • BuildはMaven
  • JDKは20
  • GroupId: org.example
  • ArtifactId: logging-practice

IntelliJ IDEAからだけでなく、コマンドラインでjarファイルを渡しても実行できるようにする

以下のエントリと同様です

今回のプログラム(依存については後述)

public class Main {
    public static void main(String[] args) {
        Logger logger = LoggerFactory.getLogger(Main.class);
        logger.info("Start");
        System.out.println("Hello world!");
        logger.debug("End");
    }
}

maven-assembly-pluginを設定して、fat jarを作ります。

% java -jar target/logging-practice-1.0-SNAPSHOT-jar-with-dependencies.jar 
22:32:07.212 [main] INFO org.example.Main -- Start
Hello world!
22:32:07.213 [main] DEBUG org.example.Main -- End

IntelliJ IDEAからだけでなく、jarも実行できました!

IntelliJ IDEAでMavenの操作も行えることを知って、最近は活用しています。
右のバーのmから「Lifecycle」の中に「package」などがあります。

SLF4Jとlogback

pom.xmlは以下です

    <dependencies>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>2.0.13</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.3.14</version>
        </dependency>
    </dependencies>

現時点の理解ですが、

  • SLF4Jが抽象(インターフェース)
  • 具象のロギングライブラリの1つがlogback
  • なんでも具象のロギングはデプロイ時に切り替えられるらしい(マジで!?)

SLF4Jと使うというのはlogbackのドキュメントにもありました。

これから素振りしていきます!

終わりに

SLF4Jとlogbackを使ったJavaのプロジェクトを作り、簡単なプログラムをjarにして実行できました。
I'm ready!

今回のサンプルコードです