CPAN模块可以汇总Perl错误日志?

时间:2010-04-25 06:36:11

标签: perl logging module cpan

我正在维护一些网站代码,很快就会将所有错误和警告转储到日志文件中。为了使这一点更加主动,我计划每天解析这个日志文件,总结警告和错误(即通过警告/错误计算每个特定的一个和组的发生),然后通过电子邮件发送给开发人员该项目。

对于哈希和一些进一步的摆弄,这可能是相当微不足道的,我想知道CPAN上是否有一个合适的模块可以用来完成这项任务。

它可以是专门汇总Perl错误/警告日志的文件,也可以是汇总任意文本文件的日志。有什么建议吗?

编辑:

我维护的网站是在每天产生50MB警告的状态下继承的。我只是在找一个我可以申请指出最多产的乐队。一旦我用完了关键的东西就可以进入Log4Perl,但是现在它不是一个选择。

3 个答案:

答案 0 :(得分:2)

我认为在CPAN上寻找特定和简单的东西,因为这可能是过度的。假设日志文件采用默认的apache错误格式:

[Mon Apr 26 15:39:34 2010] [error] [client 69.12.220.202] syntax error at /var/www/cgi-bin/errortest.cgi line 8, near "{}"

这是一个快速的邮件,用于将按最高出现次数排序的错误邮寄到地址。轻松更改为邮寄多个地址(或创建一个别名,转到多个地址并发送到该地址。

cat LOGFILE |
perl -ple 's/\[\w+\s\w+\s\d+\s\S+\s\d+\]\s\[[^\]]+\]\s\[[^\]]+\]\s//;' |
sort |     # Sort errors after
uniq -c |  # Uniqify with count
sort -rn | # Sort line counts
mail -s "Error list" EMAIL@ADDRESS

您可以通过在最适合的任何点投掷grep -v来轻松排除行。将其放入cron中以获取每日报告,或将其放入脚本并添加到logrotate。

答案 1 :(得分:1)

不是CPAN模块,但loganalysis站点在日志解析和分析方面有一些非常有用的工具和信息。

此外,log_analysis可能值得一看,就像在Perl中实现一样。

答案 2 :(得分:1)

不会有一个神奇的模块来处理任何日志格式,包括人们在本地使用的组合,你可以抛出它。您的日志格式有什么问题吗?你有printf风格的描述吗?它看起来像是一种广泛使用的格式吗?

如果您要选择错误消息的格式,请将其看作是您喜欢的工具可以理解的内容。

您也可以考虑使用Log4perl之类的内容。您不仅可以指定任何您喜欢的格式,还可以将输出发送到任何您喜欢的位置。您甚至可以将输出发送到完全规范化的数据库,以便您的摘要生成器只是一些SQL。

<强>更新

您在评论中澄清(尽管您没有编辑您的问题以澄清)这是针对perl发出的警告和错误。在这种情况下,听起来开发人员需要一个适当的测试套件来捕获所有这些东西。如果你按照捕获警告的计划投入生产,那么你的过程就会破碎。