はじめに
SPSS Modeler (以降、Modeler) のログ出力は、Log4j の機能を使って実装されています。
そのため、Modeler のマニュアルに記載されていない方法でログを書くことが可能です。
ここでは、Log4jの観点で実現可能な方法をご紹介します。
日付によるローテーション
マニュアルにも記載がありますが、Modelerの設定ファイルである、log4cxx.propertiesの以下の記述を使用すると、日付によるローテーションが可能です。
log4j.appender.MainLog.Append=True
log4j.appender.MainLog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.MainLog.DatePattern='.'yyyy-MM-dd
Undocumented
マニュアルでは、'.'yyyy-MM-dd
の記載しかありませんが、以下のパターンでも利用可能です。
'.'yyyy-MM : 月が変わったタイミングでローテート
'.'yyyy-ww : 週が変わったタイミング(日曜日)でローテート
'.'yyyy-MM-dd : 日が変わったタイミングでローテート
'.'yyyy-MM-dd-HH : 時が変わったタイミングでローテート
'.'yyyy-MM-dd-HH-mm : 分が変わったタイミングでローテート
ファイルサイズによるローテーション
ファイルサイズによるローテーションの場合、マニュアルには以下の記述があります。
log4j.appender.MainLog=org.apache.log4j.RollingFileAppender
log4j.appender.MainLog.MaxFileSize=8MB
Undocumented
Modelerのマニュアルにない世代管理を行う設定があり、以下の記述を追記できます。
log4j.appender.MainLog.MaxBackupIndex=12
この例では、ログファイルを12世代保管することになります。
この設定がない場合、デフォルトは、次のようになります。
log4j.appender.MainLog.MaxBackupIndex=1
つまり1世代のログファイルのみ保管することができます。
おわりに
この記事の作成にあたり、以下の資料を参考にしました。
Log4J徹底解説:ファイル保存系Appender
なお、Modelerの製品マニュアルに記載がない以上、非公式である旨ご了承ください。