zoukankan      html  css  js  c++  java
  • Qt5自带的日志功能,将日志输出到文件

    #include "QtWidgetsApplication1.h"
    #include <QtWidgets/QApplication>
    
    #include <QtDebug>
    #include <QFile>
    #include <QTextStream>
    #include <QDateTime>
    #include <QMutex>
    #include <QString>
    
    
    void outputMessage(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;
        }
    
        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 ddd");
        QString current_date = QString("(%1)").arg(current_date_time);
        QString message = QString("%1 %2 %3 %4").arg(text).arg(context_info).arg(msg).arg(current_date);
    
        QFile file("log.txt");
        file.open(QIODevice::WriteOnly | QIODevice::Append);
        QTextStream text_stream(&file);
        text_stream << message << "
    ";
        file.flush();
        file.close();
    
        mutex.unlock();
    }
    
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        qInstallMessageHandler(outputMessage);
        QtWidgetsApplication1 w;
        w.show();
        qDebug("this is first log text");
        return a.exec();
    }

    然后生成后 运行就可以看见日志文件了

  • 相关阅读:
    springcloud 微服务 分布式 Activiti6 工作流 vue.js html 跨域 前后分离
    java 整合redis缓存 SSM 后台框架 rest接口 shiro druid maven bootstrap html5
    继承
    封装
    对象的生命周期
    类与对象
    如何理解类?
    面向过程
    jdk1.8新特性
    git使用指南
  • 原文地址:https://www.cnblogs.com/shiyixirui/p/15422569.html
Copyright © 2011-2022 走看看