diff --git a/cacic-daemon/cacicD/cacicd.cpp b/cacic-daemon/cacicD/cacicd.cpp index 8189c83..bb6d77d 100644 --- a/cacic-daemon/cacicD/cacicd.cpp +++ b/cacic-daemon/cacicD/cacicd.cpp @@ -1,12 +1,18 @@ #include "cacicd.h" -cacicD::cacicD(int argc, char **argv) : QtService(argc, argv, "CacicD") +cacicD::cacicD(int argc, char **argv) : QtService(argc, argv, "CacicDaemon") { try{ + this->createApplication(argc, argv); + Ocacictimer = new CacicTimer(); ccacic = new CCacic; setServiceDescription("Cacic Daemon"); setServiceFlags(QtService::Default); + + logManager = QLogger::QLoggerManager::getInstance(); + logManager->addDestination(application()->applicationDirPath().append("/log.txt"),"Cacic Daemon",QLogger::InfoLevel); + logManager->addDestination(application()->applicationDirPath().append("/log.txt"),"Cacic Daemon",QLogger::ErrorLevel); } catch (...){ qCritical() << "Error desconhecido no construtor."; } @@ -15,7 +21,8 @@ cacicD::cacicD(int argc, char **argv) : QtService(argc, argv, cacicD::~cacicD() { try{ - + logManager->closeLogger(); + application()->exit(); } catch (...){ qCritical() << "Error desconhecido no desconstrutor."; } @@ -23,15 +30,19 @@ cacicD::~cacicD() void cacicD::start() { try{ - this->app = application(); + qDebug() << "Inicio do daemon"; - qDebug() << "\nServiço iniciado em" << app->applicationDirPath(); - QJsonObject result = ccacic->getJsonFromFile(app->applicationDirPath() + "/getConfig.json"); + qDebug() << "\nServiço iniciado em" << application()->applicationDirPath(); + QLogger::QLog_Info("Cacic Daemon", QString("Servico iniciado em ").append(application()->applicationDirPath()).append(".")); + + QJsonObject result = ccacic->getJsonFromFile(application()->applicationDirPath() + "/getConfig.json"); if(!result.contains("error") && !result.isEmpty()){ - Ocacictimer->iniciarTimer(result["codestatus"].toInt(), app->applicationDirPath()); + Ocacictimer->iniciarTimer(result["codestatus"].toInt(), application()->applicationDirPath()); }else{ qDebug() << "getConfig.json não encontrado."; } + + QLogger::QLog_Info("Cacic Daemon", "Serviço finalizado."); }catch (...){ qCritical() << "Error desconhecido ao iniciar o serviço."; } diff --git a/cacic-daemon/cacicD/cacicd.h b/cacic-daemon/cacicD/cacicd.h index 7aa9d73..38b8712 100644 --- a/cacic-daemon/cacicD/cacicd.h +++ b/cacic-daemon/cacicD/cacicd.h @@ -1,20 +1,28 @@ #ifndef CACICD_H #define CACICD_H #include +#include #include "qtservice.h" #include "cacictimer.h" +#include "QLogger.h" + class cacicD : public QtService { public: - QCoreApplication *app; +// QCoreApplication *app; + QLogger::QLoggerManager *logManager; CacicTimer *Ocacictimer; CCacic *ccacic; cacicD(int argc, char **argv); ~cacicD(); + void start(); void pause(); void resume(); void stop(); + +private: + }; #endif // CACICD_H diff --git a/cacic-daemon/cacicD/main.cpp b/cacic-daemon/cacicD/main.cpp index 97c87bd..e0fc49c 100644 --- a/cacic-daemon/cacicD/main.cpp +++ b/cacic-daemon/cacicD/main.cpp @@ -5,5 +5,6 @@ int main(int argc, char **argv) { cacicD service(argc, argv); + return service.exec(); } diff --git a/src/QLogger.cpp b/src/QLogger.cpp index 83f5fae..b856fc1 100644 --- a/src/QLogger.cpp +++ b/src/QLogger.cpp @@ -147,21 +147,24 @@ namespace QLogger int MAX_SIZE = 1024 * 1024; - fileDestSplit = _fileName.split("/"); - - for(int i = 0 ; i < fileDestSplit.size() ; ++i ) + if (_fileName.contains("/")) { - if( !(i == fileDestSplit.size() - 1) ) // last fileDestSplit element + fileDestSplit = _fileName.split("/"); + + for(int i = 0 ; i < fileDestSplit.size() ; ++i ) { - dirDest.append(fileDestSplit[i] + "/"); + if( !(i == fileDestSplit.size() - 1) ) // last fileDestSplit element + { + dirDest.append(fileDestSplit[i] + "/"); + } } - } - QDir dir(QDir::currentPath()); - if (!dir.exists(dirDest)) - dir.mkdir(dirDest); + QDir dir(QDir::currentPath()); + if (!dir.exists(dirDest)) + dir.mkdir(dirDest); + } QFile file(_fileName); QString toRemove = _fileName.section('.',-1); @@ -169,10 +172,10 @@ namespace QLogger bool renamed = false; QString newName = fileNameAux + "_%1__%2.log"; - //Renomenem l'arxiu si està ple + //Renomeia o arquivo se ele está cheio if (file.size() >= MAX_SIZE) { - //Creem un fixer nou + //Cria um novo arquivo QDateTime currentTime = QDateTime::currentDateTime(); newName = newName.arg(currentTime.date().toString("dd_MM_yy")).arg(currentTime.time().toString("hh_mm_ss")); renamed = file.rename(_fileName, newName); @@ -182,6 +185,7 @@ namespace QLogger file.setFileName(_fileName); if (file.open(QIODevice::ReadWrite | QIODevice::Text | QIODevice::Append)) { + QTextStream out(&file); QString dtFormat = QDateTime::currentDateTime().toString("dd-MM-yyyy hh:mm:ss.zzz"); @@ -190,8 +194,12 @@ namespace QLogger QString logLevel = QLoggerManager::levelToText(m_level); QString text = QString("[%1] [%2] {%3} %4\n").arg(dtFormat).arg(logLevel).arg(module).arg(message); + out << text; + file.close(); + } else { + qWarning() << "Não foi possível abrir arquivo de log."; } } } diff --git a/src/QLogger.h b/src/QLogger.h index 35334d4..d123fbd 100644 --- a/src/QLogger.h +++ b/src/QLogger.h @@ -25,6 +25,7 @@ #include #include #include +#include /**************************************************************************************************/ /*** GENERAL USAGE ***/ -- libgit2 0.21.2