はじめに
ぽむー🎀 nikkieです。
Javaでのloggingを練習したく、プロジェクトを作ります。
目次
- はじめに
- 目次
- IntelliJ IDEAでプロジェクト作成
- IntelliJ IDEAからだけでなく、コマンドラインでjarファイルを渡しても実行できるようにする
- SLF4Jとlogback
- 終わりに
IntelliJ IDEAでプロジェクト作成
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!
今回のサンプルコードです