#define LOG qDebug() << __FILE__ << __FUNCTION__ << __LINE__
/**
* @description: 日志输出
* @param {type}
* @return:
*/
static void log_out(const QtMsgType &type, const QMessageLogContext &context, const QString &msg) {
// 控制日志输出级别
const int level = QtDebugMsg;
// 级别
if(type >= level) {
QString message;
QString t = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss");
switch(type){
case QtDebugMsg: // 调试信息
message = QString("[%1 debug %2:%3] %3 %4").arg(t).arg(QString(context.file)).arg(context.line).arg(msg);
break;
case QtWarningMsg: // 警告信息
message = QString("[%1 warn %2:%3] %3 %4").arg(t).arg(QString(context.file)).arg(context.line).arg(msg);
break;
case QtCriticalMsg: // 严重错误
message = QString("[%1 critical %2:%3] %3 %4").arg(t).arg(QString(context.file)).arg(context.line).arg(msg);
break;
case QtFatalMsg: // 致命错误
message = QString("[%1 fatal %2:%3] %3 %4").arg(t).arg(QString(context.file)).arg(context.line).arg(msg);
break;
default:
message = QString("[%1 default %2:%3] %3 %4").arg(t).arg(QString(context.file)).arg(context.line).arg(msg);
break;
}
#if 1
// 输出到文件中
QFile file;
if(file.open(QIODevice::WriteOnly | QIODevice::Append | QIODevice::Text)){ // 追加,不存在则创建
static QMutex mutex;
mutex.lock();
QTextStream stream(&file);
stream << message << "\r\n";
file.flush();
mutex.unlock();
}
file.close();
#endif
}
}
注册消息句柄MessageHandler:qInstallMsgHandler(log_out);
Qt:打印输出
最新推荐文章于 2024-07-19 15:18:53 发布