iw.rotatezlogs
通常は、Zope/PloneはApacheと同様に KILL -HUPなどでログをローテートしないといけません。
Windows版のPlone2.1x を使っていたころは、WindowsのサービスをKill hup するような方法がわからなかったので、rotatezlogs というZope専用のプロダクトを利用していました。
現在は、ベースのOSをCentOSに切り替えているので、/etc/logrotate.d/ 以下に設定を追加すれば良いのですが、zopecrl logreopen がどうもうまく動いてくれません…。 (ただいま調査中)
どうしたら良いものかと思っていたところ、iw.rotatezlogs というPlone3対応のものが出ていたので、今回もその方法に頼ることにしました。
- easy_install iw.rotatezlogs で Pythonのsite_pakages に追加。
- zope.conf に 設定追加。
- 私の場合は、/var/log/zope に 1MBで6世代ローテートします。(このへんはオプションで設定できます)
※iw.rotatezlogsは、ログの指定はサイズ指定なので、Dailyでのローテートは出来ません。ですが、形式を指定したアーカイブオプションなどがあり、機能としては十分かなと思います。
設定は以下のような感じになります。
<eventlog>
level INFO
# zopeのデフォルト
# <logfile>
# path /var/log/zope/instance.log
# level INFO
# </logfile>
<rotatelogfile>
# Required parameters
# -------------------
path /var/log/zope/instance.log
# 1MBごとに過去5世代まで
max-bytes 1MB
backup-count 5
# Optional parameters
# -------------------
# compression zip
# format ------\n%(asctime)s %(levelname)s %(name)s %(message)s
</rotatelogfile>
</eventlog>
<logger access>
level WARN
# zopeのデフォルト
# <logfile>
# path /var/log/zope/instance-Z2.log
# format %(message)s
# </logfile>
<rotatelogfile>
# Required parameters
# -------------------
path /var/log/zope/instance-Z2.log
# 1MBごとに過去5世代まで
max-bytes 1MB
backup-count 5
# Optional parameters
# -------------------
# compression zip
# format ------\n%(asctime)s %(levelname)s %(name)s %(message)s
</rotatelogfile>
</logger>
ところで、ログのローテートの指定は、zope.conf上になるので、何も指定しないとbuildoutを実行した場合はzope.confが更新されてしまい、せっかく書いた設定も消えてしまいます。うっかりbuildoutしたのを忘れてしまい、Zopeを再起動させると、ログのローテートが無効になってしまうので、気がついたらログが数十MBになっていました。
これは困ったな~と思っていたら、幸いにも buildoutで設定できるというBlogを発見!
* How to add rotatezlogs in your buildout ( http://tarekziade.wordpress.com/2008/03/02/how-to-add-rotatezlogs-in-your-buildout/ )
以下のような感じで、buildout.cfgに指定すれば、zope.confに書き出してくれます。
[instance]
...
event-log-custom =
%import iw.rotatezlogs
<rotatelogfile>
path ${buildout:folder}/var/log/instance.log
max-bytes 1MB
backup-count 5
</rotatelogfile>
access-log-custom =
%import iw.rotatezlogs
<rotatelogfile>
path ${buildout:folder}/var/log/instance-Z2.log
max-bytes 1MB
backup-count 5
</rotatelogfile>
ということで、これでだいぶ助かりました。
buildout.cfgで、ずいぶんいろんな設定ができるものだと感心しきりです。まだまだ便利な使い方があるので、もっとうまく利用できるようにしたいなと思います。
コメント
コメントを投稿