我想写日志文件。我的应用程序可以在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方式?使用QFile
或QTextStream
是一种有效的方式来撰写此类信息吗?
我正在考虑将所有内容存储在一个简单的QString
中,然后在应用关闭或崩溃时将所有内容放入文件中(在后一种情况下,是否可能?)。