如何写高效的日志文件[原创]

日志信息的作用是用于出错时候bug定位,以及监控程序执行状态
对于bug定位信息,应该至少提供以下信息:
1. 错误的提示信息:比如权限检查没有通过
2. 错误的来源:程序执行的文件和代码所在行
3. 错误的重现:将执行错误的script打印出来,因为如果只是提供了代码文件和出错行,如果要重现bug,还需要给变量赋予实际运行的值,而且很可能是因为变量的值比较特殊导致的bug,所以将整个出错的script打印到日志对于bug重现很有帮助,能够提供问题定位的效率。
4. 错误发生的时间
5. 如果使用了配置项,最好还能显示配置项信息,方便确认配置错误!
6. 建议日志中能够体现函数调用关系,例如mysql安装日志就很好的体现了函数调用关系
   实施方法:将函数调用层次关系通过格式化的方式体现出来,同时将函数名称放在中括号中,这样纪录函数的执行起始和结束
   [2008-12-02 12:23].............[init] start
   [2008-12-02 12:24]................[loadconf] start
   [2008-12-02 12:25]----------------[loadconf] end
   [2008-12-02 12:26]................[checkconf] start
   [2008-12-02 12:27]----------------[checkconf] end
   [2008-12-02 12:28]-------------[init] end
   [2008-12-02 12:28].............[exescript] start
   [2008-12-02 12:28]................[chmod 775 test.sh]
   [2008-12-02 12:28]-------------[exescript] end
7. 日志的纪录方式和纪录媒介最好可以定制,可使用Log4Net,Log4Perl,Log4Java等Log4日志组件
   可定制的日志纪录方式可以方便用户提取所关心的日志信息,如是否函数执行了init操作,init操作的执行时间多长,init操作是否正常结束等等。
   调用方式如下:
   WritteLog("error string");
   实现方式如下:
   function WritteLog($)
   {
       for func in $FuncHash{"WriteLog"}
       {
           eval(func(@_));
       }
   }
8. 日志可以很方便的查询和统计,辅助自动化测试的结果判定,这其实就是要求日志本身具有结构化,如apache日志等等;

转载于:https://www.cnblogs.com/starspace/archive/2008/11/19/1337056.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值