zoukankan      html  css  js  c++  java
  • QT5生成log日志

    函数说明:生成log日志。

    调用方法:qInstallMessageHandler(outputMessage);

    使用qDebug()<<"q"<<endl;

    就可以在log.txt文件中查看所打印的信息。

    #ifndef _LOGRECORD_H
    #define _LOGRECORD_H
    #pragma execution_character_set("utf-8")
    #include <QObject>
    #include <QMutex>
    #include <QDateTime>
    #include <QFile>
    #include <QTextStream>
    void outputMessage(QtMsgType type, const QMessageLogContext &context, const QString &msg);

    #endif // !_LOGRECORD_H

    #include "LogRecord.h"
    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;

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

    后知后觉、越学越菜
  • 相关阅读:
    Android客户端与PCServer端socket通信加密方法
    Android的进程优先级与进程回收
    Android学习下载网络图片
    Java Socket通信实现文件传输/图片传输
    python 知识整理
    vmware 安装 centos8 步骤
    mysql 开启事务的 sql 写法
    团队项目七天冲刺 第二天
    测试的计划和执行
    Contentdisposition
  • 原文地址:https://www.cnblogs.com/chenhuanting/p/10824998.html
Copyright © 2011-2022 走看看