日志规范
作为程序员,你们工作中最讨厌遇到什么事?可能是杂乱无章的代码,可能是高强度的工作。。。。而我最讨厌的就是找Bug。
我们往往会遇到这样的一种情况:程序出问题了,但是问题出在哪儿,我们缺很难找到。对于一个经验丰富或者说对所开发系统非常熟悉的程序员来说,他们可以通过自己的经验来定位Bug。但是如果,你只是一个职场菜鸟,你对系统又不了解,你要如何去定位Bug???
这里,我就要说一下日志了。
第一、日志是什么?
平白点说就是程序的非结果性(运行流程记录,而非程序的执行结果)输出。
第二、日志的作用是什么?
日志是程序员用来定位Bug和记录系统运行情况的。
第三、日志都需要些什么信息?
对于不同类型的程序,我们需要的信息的肯定也是不一样的。这里我拿Web应用作一下简单的归纳。
- 记录时间:一般来说,我们不会实时地去查看现网的日志(你不会每天凌晨坐在机器旁边盯着那翻滚的日志吧),对于已经过去一段时间的操作,如果想知道当时程序的运行状态,就需要通过时间来定位。
- 日志级别:日志需要区分级别进行对待的。若不区分级别,则所有在开发环境记录的日志都会记录到生产环境,这肯定是我们不希望看到的,毕竟日志也会占用一部分的系统资源(主要指硬盘),我们需要做到生产环境日志最小化。有些日志我们只在开发过程中使用,不想希望它在生产服务器出现。如果我没有定义日志的级别,那么实现这个功能,我们需要删除程序中每一处这类型的日志输出,这显然是不现实的。若定义日志级别,我们就可以通过配置来区别对待不同环境的日志输出。一般来说,日志分为四种类型:
-
- DEBUG:调试日志,生产环境不建议输出。
- INFO:普通日志,可以用来甄别程序运行阶段。
- WARN:警告日志,对可能产生问题的操作进行提示。
- ERROR:错误日志,程序运行错误。
- 输出位置:我们可以通过它来知道是哪个 Class 的第几行输出的,可以以最快的速度指引我们到达错误代码附近。
- 日志描述:更加详细地描述错误出现的情况,基本上我们可以通过这个描述知道问题的类型。比如:配置错误等。
以下为无规范日志与规范后日志对比,甚至我们还可以对【日志描述】这块进行更加详细的规范,不过个应该根据企业来定。。。