💡
【Java】ログ出力処理(org.slf4j.Logger)の設定方法について
概要
ログを出力するときは出力先のパスや出力対象のログレベルを設定する必要があります。
mavenプロジェクトのときはresourceフォルダにxmlファイルを配置すれば対応できる。
ソースコード
LogUtils.java
package com.main.util;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
/**
* ログ出力クラス
*
*/
@Component
public class LogUtils {
protected final static Logger logger = LoggerFactory.getLogger(LogUtils.class);
/**
* エラーメッセージ:インフォ
* @param msg
*/
public void info(String msg) {
logger.info(msg);
}
/**
* エラーメッセージ:ワーニング
* @param msg
*/
public void warn(String msg) {
logger.warn(msg);
}
/**
* エラーメッセージ:エラー
* @param msg
*/
public void error(String msg) {
logger.error(msg);
}
/**
* エラーメッセージ:デバグ
* @param msg
*/
public void debug(String msg) {
logger.debug(msg);
}
/**
* エラーメッセージ:トレース
* @param msg
*/
public void trace(String msg) {
logger.trace(msg);
}
}
logback.xml
<configuration>
<!-- コンソール出力 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} %-5level %logger{10} %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- fileでログファイル名の指定 -->
<file>./log/application.log</file>
<!-- rollingPolicy はファイルの切り替えに伴う移動や名前の変更を行う -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 切り替えるときのログファイル名の指定 -->
<fileNamePattern>./log/%d{yyyyMM,aux}/application-%d{yyyyMMdd}.log</fileNamePattern>
</rollingPolicy>
<encoder>
<charset>UTF-8</charset>
<!-- encoderのpatternで出力内容を定義 -->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level%X{sessionId}\(%file:%line\) - %msg%n</pattern>
</encoder>
</appender>
<!-- どのパッケージをどのレベルで出力するかを設定 -->
<logger name="error" level="debug" />
<logger name="com.main" level="debug" />
<logger name="com.main.service" level="debug" />
<logger name="com.main.util" level="debug" />
<root level="OFF">
<!-- コンソールへ出力 -->
<appender-ref ref="STDOUT" />
<!-- ファイルへ出力 -->
<appender-ref ref="FILE" />-->
</root>
</configuration>
git
Discussion