Djangoで実行されているサイトがあります。フロントエンドはlighttpdであり、djangoをホストするためにfcgiを使用しています。
fcgiプロセスを次のように開始します。
python2.6 /<snip>/manage.py runfcgi maxrequests=10 host=127.0.0.1 port=8000 pidfile=django.pid
ロギングのために、次のように定義されたRotatingFileHandlerがあります。
file_handler = RotatingFileHandler(filename, maxBytes=10*1024*1024, backupCount=5,encoding='utf-8')
ロギングは機能しています。ただし、10Mbは言うまでもなく、10Kbにさえ達しない場合でも、ファイルはローテーションしているように見えます。私の推測では、各fcgiインスタンスは10個のリクエストのみを処理し、その後再生成します。fcgiがリスポーンするたびに、新しいファイルが作成されます。fcgiが新しいプロセスIDで頻繁に起動していることを確認します(正確に時間を知るのは難しいですが、1分未満です)。
この問題を回避する方法はありますか?サイズ制限に達するまで、すべてのfcgiインスタンスを1つのファイルに記録したいと思います。サイズ制限に達すると、ログファイルのローテーションが行われます。