http://blog.csdn.net/wsj18808050/article/details/53954537
介绍
代码比较简单,就是一个函数,在main中调用即可
函数申明
void setDebugOutput(const QString &targetFilePath, const bool &argDateFlag = false);
- 1
函数实现
void setDebugOutput(const QString &rawTargetFilePath_, const bool &argDateFlag_)
{
static QString rawTargetFilePath;
static bool argDateFlag;
rawTargetFilePath = rawTargetFilePath_;
argDateFlag = argDateFlag_;
class HelperClass
{
public:
static void messageHandler(QtMsgType type, const QMessageLogContext &, const QString &message_)
{
QString message;
switch ( type )
{
case QtDebugMsg:
{
message = message_;
break;
}
case QtWarningMsg:
{
message.append("Warning: ");
message.append(message_);
break;
}
case QtCriticalMsg:
{
message.append("Critical: ");
message.append(message_);
break;
}
case QtFatalMsg:
{
message.append("Fatal: ");
message.append(message_);
break;
}
default: { break; }
}
QString currentTargetFilePath;
if ( argDateFlag )
{
currentTargetFilePath = rawTargetFilePath.arg( ( ( argDateFlag ) ? ( QDateTime::currentDateTime().toString("yyyy_MM_dd") ) : ( "" ) ) );
}
else
{
currentTargetFilePath = rawTargetFilePath;
}
if ( !QFileInfo::exists( currentTargetFilePath ) )
{
QDir().mkpath( QFileInfo( currentTargetFilePath ).path() );
}
QFile file( currentTargetFilePath );
file.open( QIODevice::WriteOnly | QIODevice::Append );
QTextStream textStream( &file );
textStream << QDateTime::currentDateTime().toString( "yyyy-MM-dd hh:mm:ss" ) << ": " << message << endl;
}
};
qInstallMessageHandler( HelperClass::messageHandler );
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
注意:记得include需要的头文件
函数使用
- 不动态追加日期
setDebugOutput( "/Users/jason/desktop/log/all.log" );
- 1
- 动态追加日期
setDebugOutput( "/Users/jason/desktop/log/%1.log", true );