Файл журнала не виден, если пользователь не выходит из приложения

У меня есть проблема, когда я регистрирую некоторую информацию в приложении, такую ​​как запросы, сообщения, ответы, и в этом сегменте кода происходит то, что происходит. Моя цель — увидеть файл журнала во время работы приложения, что, по-видимому, сейчас не происходит, поэтому пользователь должен выйти из приложения и перейти в общую папку, чтобы просмотреть журналы. Я могу предоставить больше информации, если это необходимо.

 void LogClass::log(const char* pcszComponent, const char* pcszLevel, const CF1String& title, const CF1String& message)
{
m_guard.lock();

QByteArray byteArray(QTime::currentTime().toString("HH:mm:ss.zzz").toAscii());
XXString logMessage = XXFormatString("[%s] [%7s] [%4s] [%08X] [%s] [%s]\r\n", byteArray.constData(), pcszLevel, pcszComponent, QThread::currentThreadId(), title.c_str(), message.c_str());

if (!m_pLogFile) {
createLogFile();
}

if (m_pLogFile) {
fputs(logMessage.c_str(), m_pLogFile);
fflush(m_pLogFile);
}

m_guard.unlock();
}

Заранее спасибо.

0

Решение

Вы используете буферизованный вывод с fflush после каждого сообщения, поэтому потенциально вы должны увидеть обновление файла (потому что данные записываются в ОС). Возможная причина, по которой вы этого не видите, заключается в том, что ОС не сбрасывает свои внутренние файловые буферы на диск. Вы можете попробовать функция _commit в Windows или же fsync в Linux

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]