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

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

 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();
    }

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

1 ответ

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

Другие вопросы по тегам