用Plone进行原木旋转

用Plone进行原木旋转,plone,zope,Plone,Zope,Plone产品安装的日志轮换将是一个很好的特性。关于将原木轮换集成到Plone中,目前的最佳实践是什么 我找到了这篇文章:但由于plone.org上没有文档,我想向社区推荐一些众所周知的最佳做法,不要填满他们的硬盘。至少从plone 3早期开始,我就一直在使用iw.rotateLogs非常成功。我从你的链接中看到,我不再需要iw.rotatezlogs 我不喜欢依赖logrotate,因为它在我必须部署到的一台Windows服务器上不可用 据我所知,纯zope解决方案(我还没有测试过)不做日志文

Plone产品安装的日志轮换将是一个很好的特性。关于将原木轮换集成到Plone中,目前的最佳实践是什么


我找到了这篇文章:但由于plone.org上没有文档,我想向社区推荐一些众所周知的最佳做法,不要填满他们的硬盘。

至少从plone 3早期开始,我就一直在使用
iw.rotateLogs
非常成功。我从你的链接中看到,我不再需要iw.rotatezlogs

我不喜欢依赖logrotate,因为它在我必须部署到的一台Windows服务器上不可用


据我所知,纯zope解决方案(我还没有测试过)不做日志文件压缩(至少我在ZConfig/components/logger/handlers.xml中看不到它,我认为应该在这里定义它),所以我怀疑我会继续使用iw.rotatezlogs。

我们做的是这样的,它很简单,但可以工作:

在构建中,添加以下部件:

[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链接到生成的文件。

ZConfig支持标准库和。以ZConfig测试为例:

<eventlog>
  <logfile>
    path /path/to/file.log
    level debug
    when D
    interval 3
    old-files 11
  </logfile>
</eventlog>

path/path/to/file.log
级别调试
当D
间隔3
旧档案11
这将每三天滚动日志,保留11个旧文件


您可以使用实例配方中的事件日志自定义/访问日志自定义参数将这些配置代码段放置到构建中

与Laurence上面所说的类似,但大小保持在10mb以下,只保存1个旧文件

<eventlog> 
   level INFO 
   <logfile>
     path /path/to/plone4/var/log/client1.log
     max-size 10mb
     old-files 1
   </logfile>
</eventlog>

Mikko,你应该直接问我;)

我的博客文章仍然很好,这个特性在Zope2中仍然没有记录。它可以与Plone 4和Plone 5一起使用。扩展iw.rotatelogs仅为Plone 3设计


使用logrotate是不好的,因为它不能处理旋转期间的日志写入情况。它会使您的实例以静默方式崩溃,并在RAM中写入日志,直到您重新启动实例。

同样,它以Unix为中心,在Windows上不起作用。我不喜欢在Windows上运行Plone/Zope,但有些客户端需要它。你完全正确,这只适用于类似unix的环境。再一次,问题并没有问什么是最好的跨平台进行日志旋转的方式,也没有问什么应该进入plone手册。它要求提供最佳做法。在我的最佳实践列表中,没有列出windows。我完全明白你为什么从你的角度否决它,别误会我。无论如何,我将停止回答我们最近开始遇到的这种巨魔类型的问题,这是对stackoverflow资源和我精力的浪费。很难将其称为“巨魔类型的问题”——这是一个非常好的问题,我很高兴从中了解到,logrotation现在已经内置于Zope中。虽然我同意你的观点,在Windows上运行Zope很难算是最佳实践,但我不能接受日志轮换的最佳实践涉及一种无法在Zope支持的所有平台上运行的方法。。。那将是最简单的选择。。只需在构建中添加两行即可
event-log-max-size = 10mb
event-log-old-files = 3