问题描述
项目开始时,只使用QDebug将调试信息打印到终端上。后期添加了日志管理系统,比如log4cplus。如何在不修改打印语句,比如还使用qDebug,就能将日志打印到文件中。
解决方法
使用qInstallMessageHandler将调试消息重定向功能,在注册的messageHandler函数中,加入日志系统的接口。简单两步就能实现
步骤
1、实现QtMessageHandler函数
void messageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{
//调用日志系统接口
switch(type)
{
case QtDebugMsg:
LOG4CPLUS_DEBUG(Logger::getRoot(), LOG4CPLUS_TEXT(msg))
break;
case QtInfoMsg:
LOG4CPLUS_INFO(Logger::getRoot(), LOG4CPLUS_TEXT(msg))
case QtWarningMsg:
LOG4CPLUS_WARN(Logger::getRoot(), LOG4CPLUS_TEXT(msg))
break;
case QtCriticalMsg:
LOG4CPLUS_ERROR(Logger::getRoot(), LOG4CPLUS_TEXT(m