😸
SLF4J + logback + Lombokを導入してみる
SLF4J + logback + Lombokを導入
「Lombok を使用すると、@Slf4j のアノテーションを付けるだけで簡単にログを出力」できるようになるらしい
「logback は logback-classic を build.gradle で指定すると、slf4j-api と logback-core を自動的に読み込む」らしい
ログの歴史
下記がとても参考になった。(というかほぼパクリ)
導入&事前準備
build.gradle
// https://mvnrepository.com/artifact/ch.qos.logback/logback-classic
testImplementation group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.3'
logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- コンソールにログを出力する設定 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%date %level [%thread] %logger %msg%n</pattern>
</encoder>
</appender>
<!-- INFOレベル以上のログを出力-->
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>
ログ出力してみる
log_test
package jp.example;
import lombok.extern.slf4j.Slf4j;
// lombokを入れている場合、「Logger」クラスのインスタンスを作る必要がない
@Slf4j
public class log_test {
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
log.trace("traceログを出力しました");
log.debug("debugログを出力しました");
log.info("infoログを出力しました");
log.warn("warnログを出力しました");
log.error("errorログを出力しました");
}
}
実行結果
→info以上を出力する設定なのでOK
2023-11-02 04:25:09,980 INFO [main] jp.example.log_test infoログを出力しました
2023-11-02 04:25:09,985 WARN [main] jp.example.log_test warnログを出力しました
2023-11-02 04:25:09,986 ERROR [main] jp.example.log_test errorログを出力しました
Discussion