node-log4jsと強制ログローテート
log4jsというよりlog4jの仕様ですが、日を跨いでも新たにログ追記されないと日跨ぎログローテーションは行われない、みたい。
で、ログローテートを期待して前日のログファイルを分析するみたいなバッチを実行してると、開発中とかログファイルが生成されておらずに空ファイルを分析してたりとか。
そういうことがあり取った対策は、appenders設定のオプションにalwaysIncludePattern:trueを追記。
<pre>
appenders: [
{
type: "dateFile",
filename: "hoge.log",
pattern: "_yyyyMMdd",
category: "hoge",
alwaysIncludePattern : true,
layout: {
type: "pattern",
pattern: "%m"
}
}
</pre>
これで前日のログは前日から作られているので、確実に読めるはず。
だけどおそらく強制ログローテートのための機能もあった方がいいだろうとは思う。
node-log4jsに強制ログローテートのアクセサを追加しつつ、cronかnode-cronで呼び出すようにしてwrapp。か。