2016-06-06 7 views

ответ

1

вы можете проверить исходный код DPDK, rte_log.h, чтобы проверить определение RTE_LOG.

Вы можете

1) define RTE_LOG_LEVEL in Makefile, or 
2) define RTE_LOG_LEVEL in rte_log.h before RTE_LOG, e.g. 
     #define RTE_LOG_LEVEL 8 

тогда вся информация низкий уровень отладки будет лог-файл, вы можете также переопределить этот макрос как печать на консоль, если вам нравится.

в DPDK, журнал также контролируется rte_logs.type, вам нужно проверить значение, каждый модуль немного, пожалуйста, см rte_log.h RTE_LOGTYPE_XXX.

если выше не работает, попробуйте следующее

#define RTE_LOG_LEVEL 8 
#define RTE_LOG(l, t, ...)     \ 
    (void)((RTE_LOG_ ## l <= RTE_LOG_LEVEL) ?  \ 
    rte_log(RTE_LOG_ ## l,     \ 
     RTE_LOGTYPE_ ## t, # t ": " __VA_ARGS__) : \ 
0) 

в eal_common_log.c

int rte_vlog(uint32_t level, uint32_t logtype, const char *format, va_list ap) 
{ 
    ret = printf(format, ap); 
    return ret; 
} 

перекомпилировать весь DPDK и проверить, есть ли лог производства. Если эта работа, то chnage rte_vlog назад, просто проверьте имя выходного файла и глобальную переменную, упомянутую выше.

+0

Привет, Кевин, я попытался изменить «build/include/rte_config.h», а также Makefile моего приложения ($ SDK/examples/kni/Makefile), но я не нахожу никаких изменений в выходных журналах. –

+0

@SakthivelThandabani Я изменил ответ, пожалуйста, проверьте, работает ли журнал, а затем настройте его. –

+0

по умолчанию высокий уровень log-level (8) включен, например, в приложениях. Поэтому для проверки цели я понижаю ее до 1 (согласно вашему коду). но все же я получаю все журналы. я просто хочу знать, где я должен был внести изменения для LOG_LEVEL_ERR, так что я могу получить журналы состояния ошибок только. На самом деле я подозреваю, что при запуске моего приложения не выполняется какое-либо распределение mbuf, я просто хочу печатать журналы для них. –