跳转到主要内容

旋转Zope日志

项目描述

Ingeniweb 提供。

关于

此产品为标准日志处理程序提供了两个附加的日志处理器,用于旋转日志文件(请参阅 zope.conf 中的文档)。

使用系统范围内的服务来旋转Zope日志并不总是可能的。此实用程序可自动使用“logging”标准模块的功能旋转Zope日志(带或不带压缩)。

不要在ZMI工厂中查找新对象。所有配置都在 zope.conf 中(见下面的安装。)

这对于Windows来说非常有用:在Zope运行时无法从外部实用程序旋转日志。

请注意,日志旋转规则基于日志文件的实际大小,而不是时间周期(cron类似)。

需求

与Zope 2.8、Zope 2.9、Zope 2.10、Windows和Unix进行了测试。

rotatezlogs 不需要额外的产品。

与Zope 2.7.x不兼容。我们应该为这个完全重写 component.xml

安装

$ easy_install [options] iw.rotatezlogs

配置旋转文件日志处理器

zope.conf 的任何日志指令中,将处理器更改为以下示例中的 <eventlog>。

%import iw.rotatezlogs

<eventlog>
  # Usual options, see the doc in zope.conf
  level info
  <rotatelogfile>
    # Required parameters
    # -------------------
    path $INSTANCE/log/event.log
    # We'll get up to 6 Mb of logs
    max-bytes 1MB
    backup-count 5

    # Optional parameters
    # -------------------
    # compression zip
    # format ------\n%(asctime)s %(levelname)s %(name)s %(message)s
  </rotatelogfile>
</eventlog>

这也适用于其他日志(访问、跟踪、zeo等)。

当文件大小即将超出时,文件将被关闭,并静默地打开一个新文件以输出。当当前日志文件长度接近 max-bytes 时,发生滚动。如果 max-bytes 为零,则不会发生滚动。如果 backup-count 非零,系统将通过在文件名后追加扩展名“ .1”、“ .2”等来保存旧日志文件。例如,如果 backup-count 为5,基础文件名为 event.log,则将得到 event.logevent.log.1event.log.2,直到 event.log.5。正在写入的文件始终是 event.log。当此文件被填满时,它将被关闭并重命名为 event.log.1,如果存在文件 event.log.1event.log.2 等,则它们将被分别重命名为 event.log.2event.log.3 等。

如果您想要压缩的旋转日志文件,您可以在配置中添加可选的 compression 键参数。compression 的值可以是

  • none:默认值,不进行压缩处理

  • zip:旋转的文件被压缩为 xxx.log.1.zip 等。

  • gzip:旋转的文件被压缩为 xxx.log.1.gz 等。

  • bzip2:旋转的文件被压缩为 xxx.log.1.bz2 等。

请注意,某些系统或 Python 安装可能没有 bzip2 支持。在这种情况下,我们使用 none 压缩作为后备方案。您可以通过以下方式测试 bzip2 支持

$ python
...
>>> import bz2

使用 buildout 安装和配置一个 zope 实例

最简单的方法。编辑您的 buildout.cfg

[instance]
...
eggs =
  ...
  iw.rotatezlogs
  ...

event-log-custom =
  %import iw.rotatezlogs
  <rotatelogfile>
    path ${buildout:directory}/var/log/instance.log
    max-bytes 1MB
    backup-count 5
  </rotatelogfile>

access-log-custom =
  %import iw.rotatezlogs
  <rotatelogfile>
    path ${buildout:directory}/var/log/instance-Z2.log
    max-bytes 1MB
    backup-count 5
  </rotatelogfile>

请参阅上一节以获取详细说明。

测试

请阅读 …/rotatezlogs/tests/README.txt

下载

关注 rotatezlogs 的最新版本…

Subversion 仓库

https://ingeniweb.svn.sourceforge.net/svnroot/ingeniweb/iw.rotatezlogs/

版本

http://pypi.python.org/pypi/iw.rotatezlogs

支持

发送邮件至 Ingeniweb 支持

欢迎捐赠以添加新功能

致谢

Ingeniweb 团队 (c) 2006-2008

基于 Mark Hammond 的想法。

项目详情


下载文件

下载适合您平台文件的文件。如果您不确定要选择哪个,请了解有关 安装包 的更多信息。

源分发

iw.rotatezlogs-0.1.2.tar.gz (58.1 kB 查看哈希值)

上传时间:

构建分发

iw.rotatezlogs-0.1.2-py2.4.egg (67.2 kB 查看哈希值)

上传时间:

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面