当前位置:  开发笔记 > 编程语言 > 正文

如何旋转和压缩Log4perl日志文件?

如何解决《如何旋转和压缩Log4perl日志文件?》经验,为你挑选了1个好方法。

据我所知,CP4中的Log4Perl或其任何相关模块都不支持日志文件的旋转和压缩.

旋转可以通过使用:

    登录:: Log4perl :: Appender的::文件

    Log :: Dispatch :: FileRotate.

但这两个模块都不支持旋转压缩.(Log :: Dispatch :: FileRotate在它的待办事项列表中有它,但它目前没有实现).

可以使用Linux中的标准Logrotate工具,使用Log :: Log4perl :: Appender :: File的recreate_check_interval或recreate_check_signal来完成此操作.

从最初的测试中,它看起来像使用日志轮播与delaycompress选项就可以了-即使在高负荷的机器上,因为一旦文件被移动,log4perl将继续记录到同一个文件句柄,直到该信号毫无遗漏.

但是,如果未使用delaycompress,并且压缩日志文件与通过Perl程序捕获信号之间存在(甚至稍有延迟),则某些日志记录数据可能会丢失.

你怎么看?还有其他我们没有想到的选择吗?



1> 小智..:

多年来,我发现您几乎总是希望使用外部方法来使用Log4perl进行日志文件轮换.您只需避免内部日志旋转不可避免地遇到的许多细微问题(日志延迟,权限问题).

您已经提到了两种在Linux上使用logrotate的方法,为什么不坚持使用它们呢?所述Log4perl FAQ描述了使用newsyslog这是FreeBSD等效的日志轮播,并提供类似的特征.

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有