DPDK 1805 日志学习笔记

修改默认的日志等级

文件:

	${RTE_SDK}/config/common_base

差分:

	-	CONFIG_RTE_LOG_DP_LEVEL=RTE_LOG_INFO
	+	CONFIG_RTE_LOG_DP_LEVEL=RTE_LOG_DEBUG

RTE_LOG() 的打印等级

RTE_LOG() 函数调用图如下:

RTE_LOG
+-> rte_log()
	+-> rte_vlog()

最后,rte_vlog() 函数有两个全局参数会影响日志的打印。

  1. rte_logs.level
  2. rte_logs.dynamic_types[logtype].loglevel

rte_vlog() 简化后的源码。

int
rte_vlog(uint32_t level, uint32_t logtype, const char *format, va_list ap)
{

	if (level > rte_logs.level)									/* <-- 使用 rte_log_set_global_level() 可以修改 rte_logs.level */
		return 0;
	if (logtype >= rte_logs.dynamic_types_len)
		return -1;
	if (level > rte_logs.dynamic_types[logtype].loglevel)		/* <-- 使用 rte_log_set_level() 可以修改 rte_logs.dynamic_types[logtype].loglevel */
		return 0;

	ret = vfprintf(f, format, ap);
	fflush(f);
	return ret;
}

修改应用中的日志等级

如果,想打印 RTE_LOG_DEBUG 等级的日志。需要:

  1. 启动应用的时候,命令行中添加
	--log-level 99

这样可以修改 rte_logs.level

  1. 修改应用中的日志类别的等级
	main() {
		rte_log_set_level(RTE_LOGTYPE_APP, RTE_LOG_DEBUG);	
		...
	}

这样才可以打印出 RTE_LOG_DEBUG的日志。

猜你喜欢

转载自blog.csdn.net/yk_wing4/article/details/89026583
今日推荐