第一步:定义一个静态函数:
static void initLogHandler();
第二步:实现:
void Server::initLogHandler()
{
qInstallMessageHandler(customLogOutput);
}
customLogOutput :
static void customLogOutput(QtMsgType type, const QMessageLogContext &ctx, const QString &msg)
{
QFile logFile("server_log.txt");
if (!logFile.open(QIODevice::Append | QIODevice::Text))
return;
QTextStream stream(&logFile);
QString timeStr = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss");
QString level;
switch (type)
{
case QtDebugMsg: level = "DEBUG"; break;
case QtInfoMsg: level = "INFO"; break;
case QtWarningMsg: level = "WARN"; break;
case QtCriticalMsg: level = "ERROR"; break;
default: level = "OTHER";
}
stream << QString("[%1][%2] %3\n").arg(timeStr, level, msg);
logFile.close();
}
第三步,调用
Server::initLogHandler(); // 初始化日志
第四部,查看结果:
在执行文件当前目录可以找到日志文件 server_log.txt
