linux打印级别控制原理
2012-10-12 23:24
330 查看
在一个公用的头文件里面放入
#define RT_DEBUG_ERROR 1
#define RT_DEBUG_WARN 2
#define RT_DEBUG_TRACE 3
#define RT_DEBUG_INFO 4
unsigned long RTDebugLevel = RT_DEBUG_ERROR
#ifdef DBG
#define DBGPRINT_RAW(Level, Fmt) \
do{ \
if (Level <= RTDebugLevel) \
{ \
printk Fmt; \
} \
}while(0)
#define DBGPRINT(Level, Fmt) DBGPRINT_RAW(Level, Fmt)
#define DBGPRINT_ERR(Fmt) \
{ \
printk("ERROR!!! "); \
printk Fmt; \
}
#define DBGPRINT_S(Status, Fmt) \
{ \
printk Fmt; \
}
#else
#define DBGPRINT(Level, Fmt)
#define DBGPRINT_RAW(Level, Fmt)
#define DBGPRINT_S(Status, Fmt)
#define DBGPRINT_ERR(Fmt)
#endif
包含此头文件
就可以使用类似:DBGPRINT(RT_DEBUG_TRACE, ("you want print %s:%d\n", str,num));
此时需要设置RTDebugLevel为RT_DEBUG_TRACE(3)或者RT_DEBUG_INFO (4)才会有打印出现,RT_DEBUG_ERROR(1)、RT_DEBUG_WARN (2)级别都低于RT_DEBUG_TRACE(3)所以如果RTDebugLevel设置为它们则级别不够无法打印!
实际使用中系统中会有很多不同级别的打印消息,通过修改RTDebugLevel的值就可以改变级别,从而控制打印输出的数量,方便调试;
当然实际情况中并不是所有的宏定义都在一个头文件中,只有开始的四个级别是公用的,RTDebugLevel则是以全局变量的形式出现的,需要引用时使用extern就ok了,通过宏定义DBG还有修改RTDebugLevel可以灵活的的控制打印的数目;
#define RT_DEBUG_ERROR 1
#define RT_DEBUG_WARN 2
#define RT_DEBUG_TRACE 3
#define RT_DEBUG_INFO 4
unsigned long RTDebugLevel = RT_DEBUG_ERROR
#ifdef DBG
#define DBGPRINT_RAW(Level, Fmt) \
do{ \
if (Level <= RTDebugLevel) \
{ \
printk Fmt; \
} \
}while(0)
#define DBGPRINT(Level, Fmt) DBGPRINT_RAW(Level, Fmt)
#define DBGPRINT_ERR(Fmt) \
{ \
printk("ERROR!!! "); \
printk Fmt; \
}
#define DBGPRINT_S(Status, Fmt) \
{ \
printk Fmt; \
}
#else
#define DBGPRINT(Level, Fmt)
#define DBGPRINT_RAW(Level, Fmt)
#define DBGPRINT_S(Status, Fmt)
#define DBGPRINT_ERR(Fmt)
#endif
包含此头文件
就可以使用类似:DBGPRINT(RT_DEBUG_TRACE, ("you want print %s:%d\n", str,num));
此时需要设置RTDebugLevel为RT_DEBUG_TRACE(3)或者RT_DEBUG_INFO (4)才会有打印出现,RT_DEBUG_ERROR(1)、RT_DEBUG_WARN (2)级别都低于RT_DEBUG_TRACE(3)所以如果RTDebugLevel设置为它们则级别不够无法打印!
实际使用中系统中会有很多不同级别的打印消息,通过修改RTDebugLevel的值就可以改变级别,从而控制打印输出的数量,方便调试;
当然实际情况中并不是所有的宏定义都在一个头文件中,只有开始的四个级别是公用的,RTDebugLevel则是以全局变量的形式出现的,需要引用时使用extern就ok了,通过宏定义DBG还有修改RTDebugLevel可以灵活的的控制打印的数目;
相关文章推荐
- linux 打印级别控制
- Linux内核pr_debug的应用及log级别控制原理简析
- Linux 内核打印级别
- Linux的七个运行级别原理概述
- linux下打印机的原理与打印流程
- linux进程控制之用fork()函数打印n层进程二叉树
- 使用telnet来控制日志的打印级别
- 控制Linux内核启动中的打印
- Linux的七个运行级别原理概述
- 学习笔记 --- LINUX声卡设备UDA1341的控制原理
- linux应用程序开发二,进程控制原理——知识要点
- linux_c 网络开发日记(4)多进程程序设计_进程控制原理
- Linux打印系统CUPS原理分析
- linux下更改printk的打印级别和优先级
- linux 内核编译:内核配置原理与常见配置问题的解决方法&&内核版本控制解析
- 如何控制Linux终端打印字符颜色和位置
- 要将linux内核的带级别控制的printk内容打印出来,在命令行 输入 dmesg -n 8 就将所有级别的信息都打印出来
- 要将linux内核的带级别控制的printk内容打印出来,在命令行 输入 dmesg -n 8 就将所有级别的信息都打印出来
- Linux命令之dmesg - 查看开机信息/打印或控制内核环形缓冲区
- 如何控制内核打印级别