码迷,mamicode.com
首页 > 其他好文 > 详细

Qt 日志宏

时间:2014-10-21 15:04:48      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   os   ar   sp   文件   div   

随便写了一个日志帮助的宏,既可以如同qDebug()一般在调试时输出信息,也可以在输出文本文件

#ifndef LOG_H
#define LOG_H

#include <QDir>
#include <QFile>
#include <QString>
#include <QDebug>
#include <QDate>
#include <QTime>
#include <QDateTime>
#include <QTextStream>

#define WRITE_LOG_FILE(type,msg)(\
{QString err;    switch(type){        case QtDebugMsg:{err = "调试信息:";}break;        case QtWarningMsg:{err = "警告信息:";}break;        case QtCriticalMsg:{err = "严重错误:";}break;        case QtFatalMsg:{err = "致命错误:";}break;        default:{err = "常规信息:";}break;}    QString text = QString("%1\r\n 所在文件:%2 \r\n 所在位置:%3 \r\n 记录时间:%4 \r\n 记录信息:%5 \r\n").arg (err).arg (__FILE__).arg (__LINE__).arg (QDateTime::currentDateTime ().toString ("yyyy-MM-dd hh:mm:ss ddd")).arg (msg);qDebug() << text;    QDir dir;    QString path = dir.currentPath () + "\\log\\";    QDateTime dt = QDateTime::currentDateTime ();    QTime t = dt.time ();    QDate d = dt.date ();    QString name = QString("%1%2%3%4").arg (QString::number (d.year ())).arg (QString::number (d.month ())).arg (QString::number (d.day ())).arg (QString::number (t.hour ())) + QString(".txt");    QString filePath = path + name;    if(!dir.exists(path))    {        dir.mkpath(path);    }    QFile file(filePath);    if(!file.exists ())    {        file.open (QIODevice::WriteOnly);        file.close ();    }    if(file.open(QIODevice::WriteOnly | QIODevice::Append))    {        QTextStream stream(&file);        stream << text << "\r\n";        file.flush();file.close();    }})
#define DEBUG_LOG(msg)(WRITE_LOG_FILE(QtDebugMsg,msg))
#define WARNING_LOG(msg)(WRITE_LOG_FILE(QtWarningMsg,msg))
#define CRITICAL_LOG(msg)(WRITE_LOG_FILE(QtCriticalMsg,msg))
#define FATAL_LOG(msg)(WRITE_LOG_FILE(QtFatalMsg,msg))
#define LOG(msg)(WRITE_LOG_FILE(-1,msg))

#endif // LOG_H

 

Qt 日志宏

标签:style   blog   color   io   os   ar   sp   文件   div   

原文地址:http://www.cnblogs.com/rogation/p/4040361.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!