Я работаю над клиент-серверным приложением. У нас есть формат протокола для отправки и запроса данных с сервера.Теперь мне нужно зарегистрировать данные, поступающие с или на сервер в файл журнала.Я использую последнюю версию Log4cxx.Но эти двоичные данные также содержат нулевой символ.
одно сообщение выглядит так:
ab 40 01 00 00 00 ff f0 00 00 00 00 09 01 01 07 00 00 c0 a8 04 54ая.
сначала я попробовал с char * pMsg, затем я сделал что-то подобное, используя std string str (pMsg), оба не работают.
затем я сделал что-то подобное
char chMsg[MAX_PATH];
while(i<nBuffLen)
{
chMsg[i] = *(pMsgBuff+i);
i++;
}
Весь подход не работает, и в результате получается
- , он правильно печатает первые три байта и ни один после этого.
- Некоторое время вызов LOG4CXX_INFO приводит к сбою приложения.
Я использую макрос LOG4CXX_INFO для регистрации информации.
Кажется, это из-за символа NULL в четвертом поле.Я нашел эту ссылку, которая утверждает, что решить проблему, но я попробовал тот же код с LOG4CXX_INFO, это сбой.https://issues.apache.org/jira/browse/LOGCXX-162
Как решить эту проблему?