Javaのログライブラリであるslf4j+logbackの使い方です。
全体の構成
今回はソースコードは次のように配置しています。
├── pom.xml
└── src
└── main
├── java
│ └── com
│ └── example
│ └── Example.java
└── resources
└── logback.xml
pom.xml
pom.xmlにはslf4jとlogbackを使うための設定を記述しています。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>example</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>example</name>
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.30</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
</dependencies>
</project>
logback.xml
logbackの設定は logback.xml
に記述します
次の設定はINFOレベルで標準出力にログを出力します。
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy/MM/dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="info">
<appender-ref ref="STDOUT" />
</root>
</configuration>
Example.java
以下はdebug,info,warn,errorの各レベルでログを出力するサンプルコードです。
package com.example;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Example {
private static final Logger logger = LoggerFactory.getLogger(Example.class);
public static void main(String[] args) {
logger.debug("message debug");
logger.info("message info");
logger.warn("message warn");
logger.error("message error");
}
}
実行結果
ログレベルをinfoに設定しているので、INFO,WARN,ERRORのログだけが出力されていることを確認できます。
2020/03/12 12:53:11.604 [com.example.Example.main()] INFO com.example.Example - message info
2020/03/12 12:53:11.605 [com.example.Example.main()] WARN com.example.Example - message warn
2020/03/12 12:53:11.605 [com.example.Example.main()] ERROR com.example.Example - message error