资源简介

Qt 流量监控 网络延迟 QT 自动隐藏 自动变色 日志记录 实现实时流量监控,上传和下载流量,5秒内的上传和下载的平均值,30秒内的最高上传和下载的流量,网络延迟预警,断网预警,自动隐藏,延迟大于20ms时,自动变色,自动隐藏,带有日志记录

资源截图

代码片段和文件信息

#include “log.h“
#include 
#include 

CLog::CLog()
{

}

void CLog::WriteLog(QString str QString LogType)
{
    QString fileFolder= qApp->applicationDirPath()+“/log/“+QDateTime::currentDateTime().toString(“yyyy-MM-dd“);
    QDir dir(fileFolder);
    if(!dir.exists())
    {
        dir.mkpath(fileFolder);
    }
    QString filePath=QString(“%1/%2.log“).arg(fileFolder).arg(LogType);
    QString strToWrite=“日志产生时间:“+QDateTime::currentDateTime().toString(“yyyy-MM-dd hh:mm:ss“);
    strToWrite.append(QString(“\r\n日志消息:%1“).arg(str));
    strToWrite.append(“\r\n---------------------------------------------------------------------“);
    QFile file(filePath);
    file.open(QIODevice::WriteOnly | QIODevice::Append);
    QTextStream text_stream(&file);
    text_stream <    file.flush();
    file.close();
    //打印到控制台
    std::cout << strToWrite.toLocal8Bit().constData() << std::endl;
}

//注册函数
void CLog::myMessageOutput(QtMsgType type const QMessageLogContext &context const QString &msg)
{
    static QMutex mutex;
    mutex.lock();

    QString txtMessage = ““;
    QString messageType = ““;
    switch (type)    {
    case QtDebugMsg:    //调试信息提示
        messageType = “Debug“;
        txtMessage = QString(“Debug: %1 (%2:%3 %4)\n“).arg(msg).arg(context.file).arg(QString::number(context.line)).arg(context.function);
        break;
    case QtInfoMsg:
        messageType = “Info“;
        txtMessage = QString(“Info: %1 (%2:%3 %4)\n“).arg(msg).arg(context.file).arg(QString::number(context.line)).arg(context.function);
        break;
    case QtWarningMsg:    //一般的warning提示
        messageType = “Waring“;
        txtMessage = QString(“Warning: %1 (%2:%3 %4)\n“).arg(msg).arg(context.file).arg(QString::number(context.line)).arg(context.function);
        break;
    case QtCriticalMsg:    //严重错误提示
        messageType = “Critical“;
        txtMessage = QString(“Critical: %1 (%2:%3 %4)\n“).arg(msg).arg(context.file).arg(QString::number(context.line)).arg(context.function);
        //PostErrorMessage(txtMessagemessageType);
        break;
    case QtFatalMsg:    //致命错误提示
        messageType = “Fatal“;
        txtMessage = QString(“Fatal: %1 (%2:%3 %4)\n“).arg(msg).arg(context.file).arg(QString::number(context.line)).arg(context.function);
        abort();
    }
    WriteLog(txtMessage messageType);
    mutex.unlock();
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        1173  2020-06-02 10:40  TrafficMonitoring.pro
     文件        2548  2020-06-02 17:17  log.cpp
     文件         439  2020-06-02 10:37  log.h
     文件         336  2020-06-03 17:59  main.cpp
     文件       14476  2020-06-03 21:32  trafficmonitoring.cpp
     文件        1599  2020-06-03 20:41  trafficmonitoring.h
     文件        5302  2020-06-03 21:32  trafficmonitoring.ui
     文件        1245  2020-06-03 14:32  trafficthread.cpp
     文件         367  2020-06-01 14:17  trafficthread.h

评论

共有 条评论