defuze.me
Client
|
00001 /************************************************************************** 00002 ** defuze.me Epitech Innovative Project 00003 ** 00004 ** Copyright 2010 00005 ** Athena Calmettes - Jocelyn De La Rosa - Francois Gaillard 00006 ** Adrien Jarthon - Alexandre Moore - Luc Peres - Arnaud Sellier 00007 ** 00008 ** All rights reserved. 00009 **************************************************************************/ 00010 00011 #include "logger.hpp" 00012 #include <QtCore/QString> 00013 #include <QtCore/QDateTime> 00014 #include <QtCore/QDir> 00015 #include <QDebug> 00016 00017 Logger::Logger() 00018 { 00019 QDir dir; 00020 dir.mkpath(QDesktopServices::storageLocation(QDesktopServices::DataLocation) + gl_MAIN_LOG_DIR);// Create the logs directory if needed. 00021 logFile = new QFile(logFileName()); 00022 if (logFile->open(QIODevice::WriteOnly | QIODevice::Append | QIODevice::Text)) 00023 { 00024 qDebug() << "Log file is" << QFileInfo(*logFile).absoluteFilePath(); 00025 logFile->write(logHeader()); 00026 } 00027 else 00028 { 00029 qDebug() << "Cannot use Log file" << QFileInfo(*logFile).absoluteFilePath() << ": error" << logFile->error(); 00030 } 00031 } 00032 00033 Logger::~Logger() 00034 { 00035 logFile->close(); 00036 delete logFile; 00037 } 00038 00039 void Logger::log(const QString &message) 00040 { 00041 Logger::instance().updateLog(message); 00042 } 00043 00044 void Logger::updateLog(QString msg) const 00045 { 00046 msg += "\n"; 00047 msg = ". " + msg; 00048 if (logFile->isOpen()) 00049 { 00050 logFile->write(msg.toAscii()); 00051 logFile->flush(); 00052 } 00053 } 00054 00055 QByteArray Logger::logHeader() const 00056 { 00057 QString header(80, '#'); 00058 header += "\n"; 00059 return header.toAscii(); 00060 } 00061 00062 QString Logger::logFileName() const 00063 { 00064 return QDesktopServices::storageLocation(QDesktopServices::DataLocation) + gl_MAIN_LOG_DIR + 00065 "/" + gl_MAIN_LOG_FILE + "_" + 00066 QDateTime::currentDateTime().toString("yyyyMMdd") + "." + gl_MAIN_LOG_EXT; 00067 }