我正在客户端服务器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