修改默认的日志等级
文件:
${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()
函数有两个全局参数会影响日志的打印。
rte_logs.level
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
等级的日志。需要:
- 启动应用的时候,命令行中添加
--log-level 99
这样可以修改 rte_logs.level
。
- 修改应用中的日志类别的等级
main() {
rte_log_set_level(RTE_LOGTYPE_APP, RTE_LOG_DEBUG);
...
}
这样才可以打印出 RTE_LOG_DEBUG
的日志。