LoginSignup
5
4

More than 5 years have passed since last update.

EclipseのMavenプロジェクトに slf4J + logback を追加

Posted at

ログを出すつもりのないプロジェクトだったんだけど、
ログがほしいと言われたので足してみた

何も考えずにlog4jでやろうと思っていたんだけど、
どうやらすでに古いらしいw
そりゃそうだよな・・・

調べて言った結果、log4j2とslf4J + logbackの2つが主流っぽい
語呂的にはlog4j2のほうがよかったんだけど、
なんとなく新しいっぽいslf4J + logbackを選択!

いざ設定!!
Eclipse で Maven プロジェクトの作成から slf4J + logback の設定
こちらをそのまま真似させてもらいましたw

pom.xmlを開き以下を追加

pom.xml
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.25</version>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.16.18</version>
        <scope>provided</scope>
    </dependency>
  </dependencies>

プロジェクトを右クリックから、Maven - プロジェクトの更新 で反映
反映したらJava1.5になっちゃったので、java1.7を使うように変更

lombockを入れたのは、以下の記述をクラスに毎回書くことをなくすため

public static final Logger log =...」

ただしlombockをEclipseで使うにはインストールが必要
コマンドを実行しインストーラーが立ち上がるのでインストール実行(一瞬で終わります)

$ java -jar /Users/xxxxxx/.m2/repository/org/projectlombok/lombok/1.16.18/lombok-1.16.18.jar

でも代わりにこんな記述が必要になりました
(個人的にはこちらのほうがわかりにくいので、lombock入れなくてもよかったと思っていますが、、、)

import lombok.extern.slf4j.Slf4j;

@Slf4j
public class Main {

logbackのマニュアルを見たところ、
出力レベルの設定とかそんなんはlogback.xmlに書き込むとのこと
だけどどこにも見つからない・・・

Mavenプロジェクトを作成する時に、どこかで設定をミスったのかな
src/main/resources
のソースフォルダーを作って、その中にlogback.xmlを置くことで解決

あとはこちらを参考に設定しました
logback.xmlを設定する

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4