Qt日志输出
2017-01-16 00:00
232 查看
Qt日志输出
实现方式
从Qt5后使用Qt::qInstallMessageHandler()实现,Qt4之前使用Qt::qInstallMsgHandler(),建议使用Qt5的Qt::qInstallMessageHandler()级别
qDebug:调试信息
qWarning:警告信息
qCritical:严重错误
qFatal:致命错误
示例代码如下:
QString logFileName; void outputMsg(QtMsgType type, const QMessageLogContext &context, const QString &msg) { static QMutex mutex; mutex.lock(); QString text; switch(type) { case QtDebugMsg: text = QString("Debug:"); break; case QtWarningMsg: text = QString("Warning:"); break; case QtCriticalMsg: text = QString("Critical:"); break; case QtFatalMsg: text = QString("Fatal:"); } QString context_info = QString("File:(%1) Line:(%2)").arg(QString(context.file)).arg(context.line); QString current_date_time = QDateTime::currentDateTime().toString("[yyyy-MM-dd hh:mm:ss]"); QString message = QString("%1 %2 %3 %4").arg(current_date_time).arg(text).arg(context_info).arg(msg); QFile file(logFileName); file.open(QIODevice::WriteOnly | QIODevice::Append); QTextStream text_stream(&file); text_stream << message << "\r\n"; file.flush(); file.close(); mutex.unlock(); } int main(int argc, char *argv[]) { QGuiApplication app(argc, argv); QString strlogDir = QCoreApplication::applicationDirPath() + "/log"; QDir logDir(strlogDir); if (!logDir.exists()) { logDir.mkdir(strlogDir); } logFileName = strlogDir + "/QUpdater_" + QDateTime::currentDateTime().toString("yyyy_MM_dd_hhmmss") + ".log"; //Regist MessageHandler qInstallMessageHandler(outputMsg); return app.exec(); }
相关文章推荐
- Qt之日志输出文件
- QT简单调试日志输出
- 实现Qt日志功能并输出到文件(qDebug\qWarning\ qCritical\qFatal)
- QT日志输出
- Qt 调试信息,输出日志
- Qt输出调试日晒日志到文件
- QT属性表之修改属性值与输出日志的结合
- Qt 学习 第2节 日志输出和保存
- 实现Qt日志功能并输出到文件(qDebug\qWarning\ qCritical\qFatal)
- Qt输出日志文件
- 实现Qt日志功能并输出到文件
- Qt输出日志信息到txt
- Qt日志输出到文件
- 实现Qt日志功能并输出到文件(使用qInstallMsgHandler安装customMessageHandler)good
- 实现Qt日志功能并输出到文件
- Qt之日志输出文件
- Qt输出打印信息的日志到文件(简单的两种方式)
- QT中调试信息输出到日志文件
- Qt 日志输出文件
- Qt5.7.0 日志输出文件之debug重定向