zoukankan      html  css  js  c++  java
  • 良好的日志记录规范

    基本原则:

    1、  在程序开始运行应该以INFO记录程序开始运行的消息。 

    2、  在程序初始化过程中,如果影响程序主体正常运行错误出现,应该以FATAL记录出现错误的函数名、事件和错误号;如果只是一个不影响程序正常功能的模块出现错误,则应该以ERROR记录出现错误的函数名、模块名、事件和错误号。 

    3、  在程序初始化完成后,应该以INFO记录程序初始化完成的消息。 

    4、  在函数的入口,如果需要验证参数,则可以以DEBUG的形式输出参数的信息。如果重要参数不正确,则应该以ERROR输出。 

    5、  在调用比较成熟的API时,如果失败,则以ERROR记录,并且有错误号记下错误号。 

    6、  在调用没有经过严格测试的库时,即使返回成功,也要以DEBUG的形式记录下返回的结果。 

    7、  以捕获异常时,以ERROR记录下错误。 

    8、  在进行数据库操作时,以DEBUG的级别输出执行的SQL词句,对于取回的结果,最好是能打印出所有构造完成的对象的信息。 

    9、  在与其它程序进行通信时,以DEBUG记录下通信过程中的重要信息。 

    10、 对程序中的每个线程,它们的初始化完成和开始运行也要以INFO记录下来。 

    11、 对程序中需要检查运行性能的地方,以DEBUG记录下运行耗时。 

    12、 程序正常结束时,和初始化的记录方式相同,对各个模块的卸载采用和加载是一样的处理方式。当程序都卸载完成后以INFO记录程序退出的消息。 

    1.当程序产生异常时,必须捕捉并处理异常、将异常记录到日志中(除非打算抛出异常)。

     2.不要处理能够避免的异常。

     3.在异常处理模块中提供适量的错误原因信息。

     4.不要从try区段中返回。

      5.将try/catch区段置于循环之外。

      6.不要将异常用于程序流程控制。

      7.记录异常不要保存exception.getMessage(),而要记录exception.toString().

      8.一个方法不应抛出太多类型的异常。说明:如果程序中需要分类处理,则将异常根据分类组织成继承关系。如果确实有很多异常类型首先考虑用异常描述来区别,throws/exception子句标明的异常最好不要超过三个。

     9.异常捕获尽量不要直接catch(Exceptionex),应该把异常细分处理。

    10. 尽量减小try块的体积。

    11. 尽量抛出异常,顶层的main()函数截获所有的异常,并且打印(或者记录在日志中)在屏幕上。

  • 相关阅读:
    Java实现 LeetCode 833 字符串中的查找与替换(暴力模拟)
    Java实现 LeetCode 833 字符串中的查找与替换(暴力模拟)
    Java实现 LeetCode 833 字符串中的查找与替换(暴力模拟)
    Java实现 LeetCode 832 翻转图像(位运算)
    Java实现 LeetCode 832 翻转图像(位运算)
    Java实现 LeetCode 832 翻转图像(位运算)
    Java实现 LeetCode 831 隐藏个人信息(暴力)
    Java实现 LeetCode 831 隐藏个人信息(暴力)
    Java实现 LeetCode 831 隐藏个人信息(暴力)
    how to use automapper in c#, from cf~
  • 原文地址:https://www.cnblogs.com/tisakong/p/5102980.html
Copyright © 2011-2022 走看看