我正在客戶端服務器application.we有協議格式發送和查詢數據從服務器。 現在我需要在日誌文件中記錄來自或去往服務器的數據。 我正在使用最新版本的Log4cxx。 但是這個二進制數據也包含空字符。Log4cxx宏不能使用字符串包含空字符
一個消息lokks這樣的:
AB 40 01 00 00 00 FF F0 00 00 00 00 09 01 01 07 00 00 C0 04 A8 54 AE。
首先我試着用char * pMsg然後我做了這樣的事情 使用std string str(pMsg)都不起作用。
然後我做了這樣的事情
char chMsg[MAX_PATH];
while(i<nBuffLen)
{
chMsg[i] = *(pMsgBuff+i);
i++;
}
所有方法無法工作,其結果是
- 它之後正確,沒有印刷前三個字節。
- 一段時間調用LOG4CXX_INFO會使應用程序崩潰。
我正在使用LOG4CXX_INFO宏來記錄信息。
它似乎是由於第四個字段中的空字符。 我發現這個鏈接聲稱要解決的問題,但我試着用LOG4CXX_INFO它崩潰的代碼。 https://issues.apache.org/jira/browse/LOGCXX-162
鋤頭解決這個問題?
數據存儲在哪種類型? '的std :: string'? 'const char *'?你遺漏了最重要的細節。 – ildjarn 2011-05-26 07:19:06
我已更新該問題。 – 2011-05-26 07:29:45