将qDebug()信息重定向到文件中
将qDebug()信息重定向到文件中.
#include <QCoreApplication>
#include <QDateTime>
#include <QFile>
#include <QMutex>
#include <QString>
#include <QTextStream>
#include <cstdlib>
#include <iostream>
using namespace std;QMutex mutex; //日志代码互斥锁
QString timePoint;//日志生成
void LogMsgOutput(QtMsgType type,const QMessageLogContext& context,const QString& msg)
{// 持有锁mutex.lock();cout << msg.toStdString() << endl;// Critical Resource of CodeQByteArray localMsg = msg.toLocal8Bit();QString log;switch (type) {case QtDebugMsg:// fprintf(stderr, "Debug: %s (%s:%u, %s)\n", localMsg.constData(),// context.file, context.line, context.function);log.append(QString("Debug File:%1 %2 Line:%3 Content:%4").arg(context.file).arg(context.function).arg(context.line).arg(msg));break;case QtInfoMsg:// fprintf(stderr, "Info: %s (%s:%u, %s)\n", localMsg.constData(),// context.file, context.line, context.function);log.append(QString("Info: %1 %2 %3 %4").arg(localMsg.constData()).arg(context.file).arg(context.line).arg(context.function));break;case QtWarningMsg:// fprintf(stderr, "Warning: %s (%s:%u, %s)\n", localMsg.constData(),// context.file, context.line, context.function);log.append(QString("Warning: %1 %2 %3 %4").arg(localMsg.constData()).arg(context.file).arg(context.line).arg(context.function));break;case QtCriticalMsg:// fprintf(stderr, "Critical: %s (%s:%u, %s)\n", localMsg.constData(),// context.file, context.line, context.function);log.append(QString("Critical: %1 %2 %3 %4").arg(localMsg.constData()).arg(context.file).arg(context.line).arg(context.function));break;case QtFatalMsg:// fprintf(stderr, "Fatal: %s (%s:%u, %s)\n", localMsg.constData(),// context.file, context.line, context.function);log.append(QString("Fatal: %1 %2 %3 %4").arg(localMsg.constData()).arg(context.file).arg(context.line).arg(context.function));abort();}QFile file;QString path = QString("log%1.lgt").arg(timePoint);file.setFileName(path);if (!file.open(QIODevice::ReadWrite | QIODevice::Append)) {QString erinfo = file.errorString();cout << erinfo.toStdString() << endl;return;}QTextStream out(&file);out << "\n\r" << log;file.close();// 释放锁mutex.unlock();
}int main(int argc, char* argv[])
{// release模式下,调试信息输出至日志文件
#ifndef _DEBUGtimePoint = QDateTime::currentDateTime().toString("yyyyMMddHHmmss");qInstallMessageHandler(LogMsgOutput);
#endifQCoreApplication a(argc, argv); qDebug("this is a test");return a.exec();
}
参考:
- qdebug release和debug的不同实现
将qDebug()信息重定向到文件中相关推荐
- 详解printf重定向到文件中,打印日志的实现
printf是将信息打印到终端,但是有时当我们需要打印的信息比较多时,终端无法将所有信息都能够保留在屏幕上,这样我们就不能在终端获取我们想要的信息了,重定向很好的帮我们解决了这个问题,下面我就通过重定 ...
- 将Linux脚本中的正常输出,警告,错误等信息输出到文件中
将Linux脚本中的正常输出,警告,错误等信息输出到文件中 转载于:https://www.cnblogs.com/lwmp/p/7700339.html
- java文件保存异常_Java 实现把异常信息写入到文件中
示例代码如下: import java.io.File; import java.io.FileNotFoundException; import java.io.PrintStream; publi ...
- 将Linux下编译的warning警告信息输出到文件中
Linux中,脚本语言环境中,即你用make xxx即其他一些普通 linux 命令,比如ls,find等,不同的数字,代表不同的含义: 数字 含义 标准叫法 0 标准输入 stdin = stan ...
- Python:监控键盘输入、鼠标操作,并将捕获到的信息记录到文件中
Python:监控键盘输入.鼠标操作,并将捕获到的信息记录到文件中 - Socrates的专栏 - 博客频道 - CSDN.NET Python:监控键盘输入.鼠标操作,并将捕获到的信息记录到文件中 ...
- python使用logging打印信息到日志文件中
python使用logging打印信息到日志文件中 参考 Python输出日志信息 Python + logging 输出到屏幕,将log日志写入文件 使用logging打印日志到文件中的目的是: 解 ...
- 报错笔记:linux 命令行中的print输出内容无法重定向到文件中
在命令行上跑一个python程序(执行时间很长),如果将输出直接重定向到命令行上,是会有输出的 但是如果我们将其重定向到一个文件中,可能很久都没有输出 原因在于python是有缓存输出的,所以不能暂时 ...
- 编译时,输出信息重定向到文件
例如: make > /home/t.txt 2>&1 表示把输出的信息.错误信息等都放到t.txt文件中 win和linux都通用. 转载于:https://www.cnblog ...
- linux将日期和日历信息追加到文件中_Linux任务调度
crontab 任务调度 crontab 进行定时任务的设置 概述 任务调度:是指系统在某个时间执行的特定的命令或程序. 任务调度分类: 1.系统工作:有些重要的工作必须周而复始地执行,如病毒扫描等 ...
最新文章
- python获取系统时间月份_python 取数组绝对值python获取当前日期
- python 排列组合之itertools
- 短学期实训——第二篇
- C# 多种方式发送邮件(附帮助类)
- 库克宣布苹果将捐款帮助山西
- C语言丨栈(二):链栈
- 通过Shiny app实现疫苗预防疾病的过程
- db2的jdbc驱动
- maya中英文对比_[转载]maya中英文对照
- Vue使用debugger
- 静态HTML+CSS 中国高等教育学生信息网(学信网)网站
- JavaWeb-JSON
- JS 正则表达式 数字和小数点 非负数 保留两位小数点
- 【论文阅读】2022年最新迁移学习综述笔注(Transferability in Deep Learning: A Survey)
- linux基础——信号阻塞及未决信号
- 多个路由器无线桥接,共享网络
- 面向对象与面向过程编程
- Linux 网络基础(二)---传输层
- iOS下WebRTC音视频通话(一)
- Linux个性化桌面,颜值即正义,超好用的 Linux 桌面个性化工具推荐