Spring Bootでlogback.xmlを使用してログローテートする(Tomcat)

Spring Bootでlogback.xmlを使用してログローテートする(Tomcat)

Spring Bootのapplication.ymlで簡易なlog出力の設定が出来ますが、logback.xmlにログ出力情報を記載すればtomcatのwarアプリでログ出力やログローテート、環境ごとに出力内容を設定することが出来ます。

logback.xml → logback-spring.xml

Springではlogback.xmlではなく、logback-spring.xmlにするのが推奨されているようです。

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-1.3-Release-Notes

配置場所

src/main/resources/配下にlogback-spring.xmlを配置します。

logback-spring.xmlで日単位でログローテート

logback-spring.xmlで日単位でログローテートします。

logback-spring.xml

fileNamePatternで指定した日付によってログローテートの単位は決まります。

単位 変数 備考
%d
%d{yyyyMMdd} 未確認
%d{yyyyMMddHH}
%d{yyyyMMddHHmm}
%d{yyyyww} 未確認

これでapplication.logにログ出力されるようになります。但し、Tomcatのcatalina.outにも出力はされるので肥大化していってしまいます。

springProfileタグ

springProfileタグを使用すれば各環境ごとの設定ができるので便利です。

name属性にprofile(dev,test,prodなど)を指定してあげればOKです。

Tomcatでのログ出力先

Tomcatでのログ出力先はlogback-spring.xmlの<property name=”LOG_FILE” value=”/opt/tomcat/logs/application.log” />に記載しています。

/opt/tomcat/logs/配下にapplication.logが作成されます。このファイルが指定した単位でローテートされます。

ログ出力先にJPAのSQLを出力したいときはapplication.ymlに以下記述の追記が必要です。

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA