????????????????????
?????????????????????к?????  ?????????printf??  ???????????perror?? fprintf??????????????????? ??Qt??????????qDebug?????????????????????syslog?????????????????????е??...
???????????????????????????????????  ????Qt???? ????????е??????? ????????????????????? ?????λ???????????????λ???? ????????????????????????? ?÷???????????????????????grep??????£? ??????????????????? ????????????????????е?qDebug?? ????????????:
????qDebug( "[???????] ???????  File:%s?? Line:%d"?? __FILE__?? __LINE__ );
??????????????????? ???????С?????????????...
?????????????????????????????????????????????????????????????????? ????滻????????????????????????????????????????????? ????WiFi??????????????????????????????е????е??????????????[WiFi]??????????????????????????? | grep "[WiFi]"???????????????????????????:
????#define qWiFiDebug(format?? ...) qDebug("[WiFi] "format" File:%s?? Line:%d?? Function:%s"
?????? ##__VA_ARGS__?? __FILE__?? __LINE__ ?? __FUNCTION__);
???????????????qDebug???????????????Qt??????????????printf????????????????syslog???... ???У???????????????? ##__VA_ARGS__?? __FILE__?? __LINE__ ??__FUNCTION__??????????????????:
????1) __VA_ARGS__ ???????????????????????????????????????????μ?C99?淶?????????????????gcc????VC6.0???????????????????????##?????????????????????????0????????##???????????"??"????????????????????? ??????????
????2) __FILE__ ?????????????滻????????????
????3) __LINE__?????????????滻???????к?
????4) __FUNCTION__?????????????滻????????????????????????????????????__VA_ARGS__ ???????????????????????????????????????????????????????????????????????????????У???ο???????????
#include <stdio.h>
#include <string.h>
//?????????????????????????汾?? ????????а汾?? ?????????е???汾????????????
#define _DEBUG
#ifdef _DEBUG
//???????????????????????????????????????
#define DEBUG_TO_FILE
#ifdef DEBUG_TO_FILE
//???????????????????
#define DEBUG_FILE "/tmp/debugmsg"
//???????????嶠??
#define DEBUG_BUFFER_MAX 4096
//???????????????????
#define printDebugMsg(moduleName?? format?? ...) {
char buffer[DEBUG_BUFFER_MAX+1]={0};
snprintf( buffer?? DEBUG_BUFFER_MAX
?? "[%s] "format" File:%s?? Line:%d "
?? moduleName?? ##__VA_ARGS__?? __FILE__?? __LINE__ );
FILE* fd = fopen(DEBUG_FILE?? "a");
if ( fd != NULL ) {
fwrite( buffer?? strlen(buffer)?? 1?? fd );
fflush( fd );
fclose( fd );
}
}
#else