在Windows上有效地写日志文件

时间:2016-05-31 15:57:27

标签: windows qt logging qfile

我想写日志文件。我的应用程序可以在Linux和Windows上运行。由于这个例子,我几乎想出了如何为前者做到这一点:

void SyslogMessageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{
    Q_UNUSED(context)

    QByteArray localMsg = msg.toLocal8Bit();
      switch (type) 
      {
      case QtDebugMsg:
         #ifdef __linux__
           syslog(LOG_DEBUG, "Message (debug): %s", localMsg.constData());
          #elif _WIN32
            // WRITE INTO FILE
          #else
          #endif
          break;
      // etc.
      }
}

int main()
{
    // Install our message handler.
    qInstallMessageHandler(SyslogMessageHandler);
    // Send some messages, which should go to syslog.
    qDebug("Debug log message from Qt test program");
}

source(第二个例子)

但是,我想知道什么是最快的Windows方式?使用QFileQTextStream是一种有效的方式来撰写此类信息吗?

我正在考虑将所有内容存储在一个简单的QString中,然后在应用关闭或崩溃时将所有内容放入文件中(在后一种情况下,是否可能?)。

0 个答案:

没有答案