Commit abdd064eb08692afef6da0b7ce84d960f76389db
1 parent
c0f01be4
Exists in
master
Daemon fazendo log no diretório de build; registrando início e fim do serviço.
Showing
5 changed files
with
47 additions
and
18 deletions
Show diff stats
cacic-daemon/cacicD/cacicd.cpp
| 1 | 1 | #include "cacicd.h" |
| 2 | 2 | |
| 3 | -cacicD::cacicD(int argc, char **argv) : QtService<QCoreApplication>(argc, argv, "CacicD") | |
| 3 | +cacicD::cacicD(int argc, char **argv) : QtService<QCoreApplication>(argc, argv, "CacicDaemon") | |
| 4 | 4 | { |
| 5 | 5 | try{ |
| 6 | + this->createApplication(argc, argv); | |
| 7 | + | |
| 6 | 8 | Ocacictimer = new CacicTimer(); |
| 7 | 9 | ccacic = new CCacic; |
| 8 | 10 | setServiceDescription("Cacic Daemon"); |
| 9 | 11 | setServiceFlags(QtService::Default); |
| 12 | + | |
| 13 | + logManager = QLogger::QLoggerManager::getInstance(); | |
| 14 | + logManager->addDestination(application()->applicationDirPath().append("/log.txt"),"Cacic Daemon",QLogger::InfoLevel); | |
| 15 | + logManager->addDestination(application()->applicationDirPath().append("/log.txt"),"Cacic Daemon",QLogger::ErrorLevel); | |
| 10 | 16 | } catch (...){ |
| 11 | 17 | qCritical() << "Error desconhecido no construtor."; |
| 12 | 18 | } |
| ... | ... | @@ -15,7 +21,8 @@ cacicD::cacicD(int argc, char **argv) : QtService<QCoreApplication>(argc, argv, |
| 15 | 21 | cacicD::~cacicD() |
| 16 | 22 | { |
| 17 | 23 | try{ |
| 18 | - | |
| 24 | + logManager->closeLogger(); | |
| 25 | + application()->exit(); | |
| 19 | 26 | } catch (...){ |
| 20 | 27 | qCritical() << "Error desconhecido no desconstrutor."; |
| 21 | 28 | } |
| ... | ... | @@ -23,15 +30,19 @@ cacicD::~cacicD() |
| 23 | 30 | |
| 24 | 31 | void cacicD::start() { |
| 25 | 32 | try{ |
| 26 | - this->app = application(); | |
| 33 | + qDebug() << "Inicio do daemon"; | |
| 27 | 34 | |
| 28 | - qDebug() << "\nServiço iniciado em" << app->applicationDirPath(); | |
| 29 | - QJsonObject result = ccacic->getJsonFromFile(app->applicationDirPath() + "/getConfig.json"); | |
| 35 | + qDebug() << "\nServiço iniciado em" << application()->applicationDirPath(); | |
| 36 | + QLogger::QLog_Info("Cacic Daemon", QString("Servico iniciado em ").append(application()->applicationDirPath()).append(".")); | |
| 37 | + | |
| 38 | + QJsonObject result = ccacic->getJsonFromFile(application()->applicationDirPath() + "/getConfig.json"); | |
| 30 | 39 | if(!result.contains("error") && !result.isEmpty()){ |
| 31 | - Ocacictimer->iniciarTimer(result["codestatus"].toInt(), app->applicationDirPath()); | |
| 40 | + Ocacictimer->iniciarTimer(result["codestatus"].toInt(), application()->applicationDirPath()); | |
| 32 | 41 | }else{ |
| 33 | 42 | qDebug() << "getConfig.json não encontrado."; |
| 34 | 43 | } |
| 44 | + | |
| 45 | + QLogger::QLog_Info("Cacic Daemon", "Serviço finalizado."); | |
| 35 | 46 | }catch (...){ |
| 36 | 47 | qCritical() << "Error desconhecido ao iniciar o serviço."; |
| 37 | 48 | } | ... | ... |
cacic-daemon/cacicD/cacicd.h
| 1 | 1 | #ifndef CACICD_H |
| 2 | 2 | #define CACICD_H |
| 3 | 3 | #include <QCoreApplication> |
| 4 | +#include <QEventLoop> | |
| 4 | 5 | #include "qtservice.h" |
| 5 | 6 | #include "cacictimer.h" |
| 7 | +#include "QLogger.h" | |
| 8 | + | |
| 6 | 9 | |
| 7 | 10 | class cacicD : public QtService<QCoreApplication> |
| 8 | 11 | { |
| 9 | 12 | public: |
| 10 | - QCoreApplication *app; | |
| 13 | +// QCoreApplication *app; | |
| 14 | + QLogger::QLoggerManager *logManager; | |
| 11 | 15 | CacicTimer *Ocacictimer; |
| 12 | 16 | CCacic *ccacic; |
| 13 | 17 | cacicD(int argc, char **argv); |
| 14 | 18 | ~cacicD(); |
| 19 | + | |
| 15 | 20 | void start(); |
| 16 | 21 | void pause(); |
| 17 | 22 | void resume(); |
| 18 | 23 | void stop(); |
| 24 | + | |
| 25 | +private: | |
| 26 | + | |
| 19 | 27 | }; |
| 20 | 28 | #endif // CACICD_H | ... | ... |
cacic-daemon/cacicD/main.cpp
src/QLogger.cpp
| ... | ... | @@ -147,21 +147,24 @@ namespace QLogger |
| 147 | 147 | |
| 148 | 148 | int MAX_SIZE = 1024 * 1024; |
| 149 | 149 | |
| 150 | - fileDestSplit = _fileName.split("/"); | |
| 151 | - | |
| 152 | - for(int i = 0 ; i < fileDestSplit.size() ; ++i ) | |
| 150 | + if (_fileName.contains("/")) | |
| 153 | 151 | { |
| 154 | - if( !(i == fileDestSplit.size() - 1) ) // last fileDestSplit element | |
| 152 | + fileDestSplit = _fileName.split("/"); | |
| 153 | + | |
| 154 | + for(int i = 0 ; i < fileDestSplit.size() ; ++i ) | |
| 155 | 155 | { |
| 156 | - dirDest.append(fileDestSplit[i] + "/"); | |
| 156 | + if( !(i == fileDestSplit.size() - 1) ) // last fileDestSplit element | |
| 157 | + { | |
| 158 | + dirDest.append(fileDestSplit[i] + "/"); | |
| 159 | + } | |
| 157 | 160 | } |
| 158 | - } | |
| 159 | 161 | |
| 160 | - QDir dir(QDir::currentPath()); | |
| 161 | 162 | |
| 162 | - if (!dir.exists(dirDest)) | |
| 163 | - dir.mkdir(dirDest); | |
| 163 | + QDir dir(QDir::currentPath()); | |
| 164 | 164 | |
| 165 | + if (!dir.exists(dirDest)) | |
| 166 | + dir.mkdir(dirDest); | |
| 167 | + } | |
| 165 | 168 | |
| 166 | 169 | QFile file(_fileName); |
| 167 | 170 | QString toRemove = _fileName.section('.',-1); |
| ... | ... | @@ -169,10 +172,10 @@ namespace QLogger |
| 169 | 172 | bool renamed = false; |
| 170 | 173 | QString newName = fileNameAux + "_%1__%2.log"; |
| 171 | 174 | |
| 172 | - //Renomenem l'arxiu si està ple | |
| 175 | + //Renomeia o arquivo se ele está cheio | |
| 173 | 176 | if (file.size() >= MAX_SIZE) |
| 174 | 177 | { |
| 175 | - //Creem un fixer nou | |
| 178 | + //Cria um novo arquivo | |
| 176 | 179 | QDateTime currentTime = QDateTime::currentDateTime(); |
| 177 | 180 | newName = newName.arg(currentTime.date().toString("dd_MM_yy")).arg(currentTime.time().toString("hh_mm_ss")); |
| 178 | 181 | renamed = file.rename(_fileName, newName); |
| ... | ... | @@ -182,6 +185,7 @@ namespace QLogger |
| 182 | 185 | file.setFileName(_fileName); |
| 183 | 186 | if (file.open(QIODevice::ReadWrite | QIODevice::Text | QIODevice::Append)) |
| 184 | 187 | { |
| 188 | + | |
| 185 | 189 | QTextStream out(&file); |
| 186 | 190 | QString dtFormat = QDateTime::currentDateTime().toString("dd-MM-yyyy hh:mm:ss.zzz"); |
| 187 | 191 | |
| ... | ... | @@ -190,8 +194,12 @@ namespace QLogger |
| 190 | 194 | |
| 191 | 195 | QString logLevel = QLoggerManager::levelToText(m_level); |
| 192 | 196 | QString text = QString("[%1] [%2] {%3} %4\n").arg(dtFormat).arg(logLevel).arg(module).arg(message); |
| 197 | + | |
| 193 | 198 | out << text; |
| 199 | + | |
| 194 | 200 | file.close(); |
| 201 | + } else { | |
| 202 | + qWarning() << "Não foi possível abrir arquivo de log."; | |
| 195 | 203 | } |
| 196 | 204 | } |
| 197 | 205 | } | ... | ... |
src/QLogger.h