代码上库前的自动review实现

perlcritic是一款PERL的静态代码检测工具,官网为:http://www.perlcritic.org
源码下载:https://github.com/Perl-Critic/Perl-Critic,可以参考http://search.cpan.org/dist/Perl-Critic/使用,可以使用CPAN安装:

本日志自动扫描工具建立在Critic基础上,为我们的日志检测规则写了一插件,名为RequireLogStatment,安装文件覆盖/usr/local/share/perl/5.14.2/Perl/Critic/Policy/CodeLayout/RequireLogStatment.pm 即可使用。

检测规则

针对部门使用大量PERL代码做日志规范,当前主要检查该打日志的地方未打日志的行为,该打日志的检查点为:
EXITWORD:return, exit, _exit, die

打日志的函数为:
LOGWORD:ldie lemerg lalert lcrit lerror lwarn lnotice linfo ldebug dbg1 dbg2 dbg3 dbgv

不是所有EXITWORD前都要打日志,且日志级别不一定是lerror,例如一个函数运行最后一条return语句作为合法出口不要求打日志,为了避免日志过多,建议大家按照“先处理错误,最后处理正确原则”书写代码,例如:

如果某些语句真不需要日志,可以添加annotation,规则是在语句前一条注释处加:

继续阅读