Linux Kernel Log 定制化

我们的需求?

内核打印日志信息时,我们想增加一些统一的标志性TAG,并且加上进程/线程号,方便对生成的日志信息搜索查看,对我们的开发调试能提供不少帮助。

怎么做?

在你的内核.c 源文件(常见的是驱动程序)的头部,所有 #include 语句的后面,添加如下语句

#ifdef pr_fmt
#undef pr_fmt
#endif
#define pr_fmt(fmt) "CUST_TAG: %d: %s line=%d: " fmt, \
	current->pid, __func__, __LINE__

注意:不建议将如上信息添加到 .h 头文件中,因为其他头文件也可能会有类似将 pr_fmt 重定义的可能,那么你的定义可能会被复写而产生非预期。另外还一个好处就是,在 .c 文件中的定义只对当前 .c 文件生效。

上面定义好之后,在当前源文件中就可以愉快的使用如下打印函数打印带有 CUST_TAG 的日志信息了:

pr_err()
pr_info()
pr_debug()
...
发布了61 篇原创文章 · 获赞 27 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/xiaosaerjt/article/details/105125368