Tomcat周りのログとslf4jのログの設定
Tomcatで出力されるログ
リストがここにあった。
そこで自分が開発してるアプリで使ってるのが
・catalina.out → Tomcatの起動・停止等のログが流れる。
・localhost.[date] → JavaでのNullPointerExceptionやJSPのエラーなどがここに吐出される。
の2つ。
Tomcatのログローテーションの設定
ここを参考にした。
まとめると2つの方法があり
・logging.propertiesを編集
・OSのログローテーション機能を使うか
後者は
/etc/logrotate.d/tomcatという設定ファイルを作る
と書いてある。
アプリ内のロギング
Appenderの定義
Chapter 6: Layoutsの記載を踏襲する。
<appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender"> <append>true</append> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>DEBUG</level> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LoggingDir}/hoge.%d{yyyy-MM-dd}.gz</fileNamePattern> <maxHistory>30</maxHistory> </rollingPolicy> <encoder> <pattern>%d{HH:mm:ss.SSS} [%level] %logger %msg%n</pattern> </encoder> </appender>
ERRORの場合
loggerの設定
<logger name="org.springframework" level="INFO"> <appender-ref ref="STDOUT"/> </logger> <!-- jp.co.hoge配下のログは実行環境に合わせる。 --> <logger name="jp.co.hoge" level="${ROOT_LEVEL}"> <appender-ref ref="STDOUT"/> <appender-ref ref="INFO"/> </logger> <!-- 全てのエラーはERRORに反映させる --> <root level="${ROOT_LEVEL}"> <appender-ref ref="ERROR"/> </root>
STDOUTはConsoleAppenderすなわちCatalina.outに出力される。
ここでポイント
・ spring関連のログはINFOにして、STDOUTを指定→Catalina.outで起動状況を追跡。*2
・ ERROR(WARN以上)はrootロガー
・ アプリログはINFO