Plone产品安装的日志轮换将是一个很好的功能。有关将日志轮换集成到Plone中的最新实践是什么?
我发现了这篇文章:http://encolpe.wordpress.com/2010/06/17/how-to-get-log-files-rotate-in-zope-with-buildout/但由于plone.org上没有文档,我想ping社区,了解最佳做法,不要填写硬盘。
答案 0 :(得分:6)
ZConfig支持标准库RotatingFileHandler和TimedRotatingFileHandler。以ZConfig测试为例:
<eventlog>
<logfile>
path /path/to/file.log
level debug
when D
interval 3
old-files 11
</logfile>
</eventlog>
这将每三天滚动一次日志,保留11个旧文件。
您可以使用实例配方中的event-log-custom / access-log-custom参数将这些配置片段放置在您的buildout中。 plone.recipe.zope2instance
答案 1 :(得分:4)
与劳伦斯上面所说的类似,但保持大小不超过10mb,只保存1个旧文件。
<eventlog>
level INFO
<logfile>
path /path/to/plone4/var/log/client1.log
max-size 10mb
old-files 1
</logfile>
</eventlog>
plone.recipe.zope2instance现在可以生成这个。例如,您可以指定以下选项:
event-log-max-size = 10mb
event-log-old-files = 3
答案 2 :(得分:2)
这是我们的工作,它很简单但有效:
在您的buildout中添加此部分:
[logrotate]
recipe = collective.recipe.template
input = ${buildout:directory}/templates/logrotate.conf
output = ${buildout:directory}/etc/logrotate.conf
并在templates/logrotate.conf
rotate 4
weekly
create
compress
delaycompress
missingok
${buildout:directory}/var/log/instance1.log ${buildout:directory}/var/log/instance1-Z2.log {
sharedscripts
postrotate
/bin/kill -USR2 $(cat ${buildout:directory}/var/instance1.pid)
endscript
}
${buildout:directory}/var/log/instance2.log ${buildout:directory}/var/log/instance2-Z2.log {
sharedscripts
postrotate
/bin/kill -USR2 $(cat ${buildout:directory}/var/instance2.pid)
endscript
}
添加您需要的任何其他日志轮换。然后是将/etc/logrotate.conf链接到生成的文件。
答案 3 :(得分:2)
Mikko,你应该直接问我;)
我的博客文章仍然很好,这个功能在Zope2中仍然没有记录。它可以与Plone 4和Plone 5一起使用。扩展名iw.rotatelogs仅为Plone 3设计。
使用logrotate并不正常,因为它在循环期间不处理日志写入的情况。它可以使您的实例静默崩溃并将日志写入RAM,直到您重新启动实例。
答案 4 :(得分:1)
我一直在使用iw.rotatezlogs
因为至少早期的Plone 3非常成功。我从你的链接中看到我不再需要iw.rotatezlogs了。
我不喜欢依赖logrotate,因为它不能在我必须部署到的一台Windows服务器上使用。
尽我所知,纯zope解决方案(我还没有测试过)不进行日志文件压缩(至少我在ZConfig / components / logger / handlers.xml中看不到它是我认为应该定义的地方),所以我怀疑我会留在iw.rotatezlogs。