日志规范

日志等级使用规范

1. 错误-Debug.LogError

该级别的错误也需要马上被处理,但是紧急程度要低于FATAL级别。当ERROR错误发生时,已经影响了用户的正常访问。从该意义上来说,实际上ERROR错误和FATAL错误对用户的影响是相当的。FATAL相当于服务已经挂了,而ERROR相当于好死不如赖活着,然而活着却无法提供正常的服务,只能不断地打印ERROR日志。

2. 警告-Debug.LogWarning

该日志表示系统可能出现问题,也可能没有,这种情况如网络的波动等。对于那些目前还不是错误,然而不及时处理也会变为错误的情况,也可以记为WARN日志,例如一个存储系统的磁盘使用量超过阀值,或者系统中某个用户的存储配额快用完等等。对于WARN级别的日志,虽然不需要系统管理员马上处理,也是需要及时查看并处理的。因此此种级别的日志也不应太多,能不打WARN级别的日志,就尽量不要打;

3. 调试-Debug.Log

该级别日志的主要作用是对系统每一步的运行状态进行精确的记录。通过该种日志,可以查看某一个操作每一步的执 行过程,可以准确定位是何种操作,何种参数,何种顺序导致了某种错误的发生。可以保证在不重现错误的情况下,也可以通过DEBUG(或TRACE)级别的日志对问题进行诊断。需要注意的是,DEBUG日志也需要规范日志格式,应该保证除了记录日志的开发人员自己外,其他的如运维,测试人员等也可以通过 DEBUG(或TRACE)日志来定位问题;


日志函数使用规范

1. 日志字符串应该避免过早拼接,强烈建议使用xxxFormat的日志函数
//错误日志--当以下等级日志不输出时,字符串拼接依然执行
Debug.Log(string.Format("[ModuleName] Fail to Load config File:{0}", fileName));

//正确日志--当以下等级日志不输出时,字符串拼接不用执行,可提高性能
Debug.LogFormat("[ClassName] Fail to Load config File:{0}", fileName);
2. 日志避免装箱
//错误日志--日志引起装箱
Debug.LogFormat("[ModuleName] Current index :{0}", index);

//正确日志--应避免日志引起装箱
Debug.LogFormat("[ModuleName] Current index :{0}", index.toString());

日志内容规范

日志的前缀应该使用模块名,或者类名方便过滤和查找。

Debug.LogErrorFormat("[ModuleName] Fail to Load config File:{0}", fileName);
Debug.LogErrorFormat("[ClassName] Fail to Load config File:{0}", fileName);