关于debug level的学习

本文深入探讨了debuglevel与loglevel在软件开发过程中的作用,解释了为何需要它们以及如何合理定义与使用。通过对比实际案例,如Linux内核的 printk 日志级别设置,阐述了不同日志级别的意义与应用场景。强调在发布版本中对loglevel进行优化,以提升系统性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

debug level就是在代码中增加的一些日志信息,其目的是为了debug。
既然是代码中增加的日志信息,那为何还要debug level呢?直接使用printf输出不行吗?
因为如果将所有的日志信息都打印出来,那必须会极大的降低程序的执行效率。

log level该如何定义?
像linux printk就定义了8个级别的log level:
#define KERN_EMERG "<0>"
#define KERN_ALERT "<1>"
#define KERN_CRIT "<2>"
#define KERN_ERR "<3>"
#define KERN_WARNING "<4>"
#define KERN_NOTICE "<5>"
#define KERN_INFO "<6>"
#define KERN_DEBUG "<7>"

像一般的应用软件可以定义类似于如下的log level,
#define LOG_LEVEL_DEBUG (0)
#define LOG_LEVEL_INFO  (1)
#define LOG_LEVEL_WARN  (2)
#define LOG_LEVEL_ERROR (3)
#define LOG_LEVEL_FATAL (4)

当然,每一个软件都可以根据自身的需要定义自己的log level,并没有一个定死的规则。
debug level的目的是为了查找软件中的bug,但是在最终release的版本中应该要将其关掉或者部分关掉,
否则将会影响到系统的性能。
比如在release版本中只让log level为ERROR/FATAL的日志打印出来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值