Qt5 自定义日志

举报
风吹稻花香 发表于 2021/06/05 00:10:48 2021/06/05
【摘要】 #include <QLoggingCategory> #include <QTextStream> #include <QDateTime> #include <QFile> #include <QMutex> #define LOGFILEMAX 10000 void outputMessage(...
#include <QLoggingCategory>

#include <QTextStream>
#include <QDateTime>
#include <QFile>
#include <QMutex>
#define LOGFILEMAX 10000
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:");
 mutex.unlock();
 return;
 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").arg(current_date_time).arg(text).arg(msg);

 QFile file("log.txt");
 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[])
{
// QLoggingCategory::setFilterRules(QStringLiteral("qt.custom.log.debug=false"));
 //注册MessageHandler
 qInstallMessageHandler(outputMessage);

 //打印日志到文件中
 qDebug("This is a debug message");

文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/78425908

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。