[Spring Boot]log4j2の初期設定と実際にログ出力するサンプル

内容

spring boot のWebアプリケーションで log4j2 を使って簡単にログを出力する。

log4j2の概要メモ

log4j2の大枠部分の説明

項目 説明 備考
Appender ログ出力先の設定。 出力ディレクトリ、ログファイル名やログレイアウトを設定。
Logger ロギングをグループ化。 パッケージ毎にグループ分けしたり、ログレベルや出力先(Appdnder)を設定する。

ログレベルの優先順位(低い順)

TRACE → DEBUG → INFO → WARN → ERROR → FATAL

log4j2.xml の設定詳細

Rollingログのロールオーバー(ファイル切り替え)のタイミング設定

項目 項目説明 設定例
OnStartupTriggeringPolicy アプリ起動時 <OnStartupTriggeringPolicy />
SizeBasedTriggeringPolicy 指定したサイズに達した時 <SizeBasedTriggeringPolicy size=”10 MB” />
TimeBasedTriggeringPolicy 日付が変わったとき <TimeBasedTriggeringPolicy />

Loggerの設定

項目 項目説明 設定例
name ログを出力したいパッケージを指定 name=”com.w_hippo.spring”
level 出力したいログレベル level=”info”
additivity 上位のロガーにもログを出力するか設定(デフォルト”true”)。 additivity=”false”

log4j2の設定サンプル

pom.xml

・「spring-boot-starter-log4j2」を追加設定
・「spring-boot-starter-logging」を除外設定

 

log4j2.xml (~/src/main/resources/ に格納)

・すべてをログ出力する「ROOT」
・Webアプリのパッケージ内すべてをログ出力する「app-log」
・Controllerだけをログ出力する「controller-log」
・ログファイルはローリングファイル
・ロールオーバーするタイミングは起動時と日付変更時とサイズが10MBに達したとき。
・ロールオーバー時にログファイル名年月日を指定

App.java

AppController.java

HelloService.java

実行結果(Webアプリ起動時)

コンソール

app.log

(空)

controller.log

(空)

実行結果(hello処理時)

コンソール(追記分のみ)

 

app.log

 

controller.log