• Main Page
  • Classes
  • Files
  • File List
  • File Members

lib/bfLogging/src/logmessage.cpp

Go to the documentation of this file.
00001 
00006 #include "logmessage.h"
00007 #include <QThread>
00008 
00009 LogMessage::LogMessage(const QtMsgType type, const QString& message, QHash<QString,QString>* logVars) {
00010     this->type=type;
00011     this->message=message;
00012     timestamp=QDateTime::currentDateTime();
00013     threadId=QThread::currentThreadId();
00014 
00015     // Copy the logVars if not null,
00016     // so that later changes in the original do not affect the copy
00017     if (logVars) {
00018         this->logVars=*logVars;
00019     }
00020 }
00021 
00022 QString LogMessage::toString(const QString& msgFormat, const QString& timestampFormat) const {
00023     QString decorated=msgFormat+"\n";
00024     decorated.replace("{msg}",message);
00025 
00026     if (decorated.contains("{timestamp}")) {
00027         decorated.replace("{timestamp}",QDateTime::currentDateTime().toString(timestampFormat));
00028     }
00029 
00030     QString typeNr;
00031     typeNr.setNum(type);
00032     decorated.replace("{typeNr}",typeNr);
00033 
00034     switch (type) {
00035     case QtDebugMsg:
00036         decorated.replace("{type}","DEBUG");
00037         break;
00038     case QtWarningMsg:
00039         decorated.replace("{type}","WARNING");
00040         break;
00041     case QtCriticalMsg:
00042         decorated.replace("{type}","CRITICAL");
00043         break;
00044     case QtFatalMsg:
00045         decorated.replace("{type}","FATAL");
00046         break;
00047     default:
00048         decorated.replace("{type}",typeNr);
00049     }
00050 
00051     QString threadId;
00052     threadId.setNum((unsigned int)QThread::currentThreadId());
00053     decorated.replace("{thread}",threadId);
00054 
00055     // Fill in variables
00056     if (decorated.contains("{") && !logVars.isEmpty()) {
00057         QList<QString> keys=logVars.keys();
00058         foreach (QString key, keys) {
00059             decorated.replace("{"+key+"}",logVars.value(key));
00060         }
00061     }
00062 
00063     return decorated;
00064 }
00065 
00066 QtMsgType LogMessage::getType() const {
00067     return type;
00068 }

Generated on Mon Dec 26 2011 12:09:22 for QtWebApp by  doxygen 1.7.1