私はクライアントサーバーアプリケーションに取り組んでいます。サーバーからデータを送信およびクエリするためのプロトコル形式があります。ここで、サーバーとの間で送受信されるデータをログ ファイルに記録する必要があります。Log4cxx の最新バージョンを使用しています。ただし、このバイナリ データには null 文字も含まれています。
1 つのメッセージは次のようにロックされます。
ab 40 01 00 00 00 ff f0 00 00 00 00 09 01 01 07 00 00 c0 a8 04 54 ae.
最初に char* pMsg で試した後、標準文字列 str(pMsg ) を使用してこのようなことを行いました。両方とも機能していません。
それから私はこのようなことをしました
char chMsg[MAX_PATH];
while(i<nBuffLen)
{
chMsg[i] = *(pMsgBuff+i);
i++;
}
すべてのアプローチが機能せず、結果は
- 最初の 3 バイトは正しく出力され、その後は何も出力されません。
- LOG4CXX_INFO を何度か呼び出すと、アプリケーションがクラッシュします。
LOG4CXX_INFO マクロを使用して情報を記録しています。
4番目のフィールドのNULL文字が原因のようです。問題が解決されたと主張するこのリンクを見つけましたが、クラッシュしている LOG4CXX_INFO で同じコードを試しました。 https://issues.apache.org/jira/browse/LOGCXX-162
この問題を解決するには?