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的日志打印出来。

Logo

更多推荐