C语言日志分级设计

前言

C语言是一门面向过程的编程语言,其程序的设计流程就是根据上层的业务需求编写一系列函数,中间辅以if、for、while、switch等流程控制语句来实现各种数据的处理。从程序可靠运行方面考虑,我们希望程序的执行过程可以被程序员可控了解,这在程序开发过程中以及程序的后期维护都至关重要。能实现这种功能的最好方法就是在程序运行的关键节点添加日志打印追踪了。一个良好的日志打印输出设计可以使程序员无论是在程序开发还是后期的维护都能够快速定位到程序运行出错的问题,提升程序员处理bug的能力。一般在开法测试阶段,我们希望能够尽可能输出程序运行的关键信息,以帮助修复完善软件开发初级时的bug,但是后期软件发布后,我们又希望只保留尽可能少的关键打印输出,以提高程序运行效率。对于这种矛盾的需求我们可以使用分级的日志打印输出来实现。

日志分级概念

参考一些诸如Java等高级语言的分级日志设计,我们根据对程序运行信息的类型把控,可以把日志分为5个级别DEBUG、INFO、WARN、ERROR、FATAL ERROR。

DEBUG:主要用于程序开发测试阶段的打印输出,用于验证程序的设计逻辑是否满足上层应用的设计需求,在经过测试检验后的发布程序可以把它关掉。

INFO:这个级别的打印输出是用来告诉测试人员或者开发人员一些特殊的信息,比如一些关键数据的操作。

WRAN:这是一种警告的打印输出,它一般是用来输出诸如用户输入错误的数据之类的警告打印,这个级别的打印输出在程序发布后也建议保留,以方面后期程序的维护追踪。

ERROR:运行出错的打印,优秀的程序设计都具有很好的容错性能,在程序运行出错的时候能够自己修正回来,举个例子,在网络编程中遇到数据请求错误,我们可以启用重连机制的方法去试图解决程序运行出错的问题。这个级别的打印在发布的软件不可关闭,否则无法从发布软件中获取一些反馈信息来指导我们新的程序优化设计。

FATAL ERROR:程序运行遇到这种级别的问题,很难修复,一般伴随着程序的闪退或重启,此时FATAL ERROR的打印则非常关键了,可以帮助我们定位到程序跑飞的原因,FATAL ERROR级别的打印在任何时刻都不可以关闭。

日志分级设计

在C语言中,分级日志的输出控制实现可以借助强大的宏来做;日志输出分级的配置则可以利用程序的运行参数来指定或者使用配置文件等其他手段来实现;对输出内容的格式规范控制则一般在每行开头加上实时时间、程序运行的文件、函数、行数等信息,以实现快速查询定位;日志内容输出的位置可以是串口打印或者log信息文件,推荐使用log文件保存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值