Spring Bootでログを管理する

実装方法

・LoggingService.java

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class LoggingService {

private static final Logger logger = LoggerFactory.getLogger(LoggingService.class);

public static void trace(String msg) {
logger.trace(msg);
}
public static void debug(String msg) {
logger.debug(msg);
}
public static void info(String msg) {
logger.info(msg);
}
public static void warn(String msg) {
logger.warn(msg);
}
public static void error(String msg) {
logger.error(msg);
}
}

・application.properties

logging.file=../logs/logtest.log
logging.level.root=DEBUG
#logging.level.root=TRACE
#logging.level.root=DEBUG
#logging.level.root=INFO
#logging.level.root=WARN
#logging.level.root=ERROR

Spring Bootのデフォルトでは、INFOが設定されているようでログレベルERROR、WARN、INFOのログが出力される。
開発時にはより詳細なログを確認するためログレベルDEBUGも出力するように設定しとくと良い。

LoggingServiceをimportしてメソッドを呼び出すことで使用することが出来る。

logger.info("********************");
logger.warn("********************");
logger.error("********************");

実際のログ

呼び出すとこのような感じでログ出力される。

2019-09-18 12:59:29.331 INFO 23044 --- [io-18080-exec-1] c.e.app.service.LoggingService : ********************
2019-09-18 12:59:29.332 WARN 23044 --- [io-18080-exec-1] c.e.app.service.LoggingService : ********************
2019-09-18 12:59:29.333 ERROR 23044 --- [io-18080-exec-1] c.e.app.service.LoggingService : ********************

ログ概要

■日時(ミリ秒の精度で出力される
■ログレベル(ERROR、WARN、INFO、DEBUG、TRACE)
■プロセスID
■セパレータ(—
■スレッド名(コンソール出力のため切り捨てられる可能性があるので括弧で囲まれている
■クラス名
■ログメッセージ

Let's share SNS