2016-06-06 1 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 

는 모든 낮은 수준의 디버그 정보가 로그 파일 될 수있다, 당신은 또한 당신이 좋아하는 경우 콘솔에 인쇄로이 매크로를 다시 정의 할 수 있습니다.

DPK에서 로그도 rte_logs.type으로 제어됩니다. 값을 확인해야하며 각 모듈은 약간입니다. rte_log.h RTE_LOGTYPE_XXX를 참조하십시오.

위에서 작동하지 않을 경우

는 eal_common_log.c에서 다음

#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) 

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

안녕하세요, Kevin, "build/include/rte_config.h"뿐 아니라 내 앱 ($ SDK/examples/kni/Makefile)의 Makefile도 변경하려고했지만 출력 로그의 변경 사항을 찾지 못했습니다. –

+0

@SakthivelThandabani 답변을 변경 했으므로 로그가 작동하는지 확인한 다음 조정하십시오. –

+0

기본적으로 높은 로그 수준 (8)은 예제 앱에서 사용하도록 설정되어 있습니다. 따라서 목적을 확인하기 위해 코드를 1로 다운 그레이드합니다. 하지만 여전히 모든 로그를 얻고 있습니다. 난 단지 어디에 내가 오류 조건 로그를 얻을 수 있도록 LOG_LEVEL_ERR에 대한 변경을 해야할지 알고 싶다 .. 실제로 나는 내 애플 리케이션을 실행하는 동안 일부 mbuf 할당이 실패 의심, 난 그 사람에 대한 로그를 인쇄합니다. –