From be0fa4c4fabc542b911b4e4047cd1c8569596879 Mon Sep 17 00:00:00 2001 From: Thiago Rocha Date: Wed, 10 Sep 2014 12:10:06 -0300 Subject: [PATCH] QLogger alterado para criar diretório caso seja passado um diretório não existente em addDestination. --- cacic-teste/testcacic.cpp | 8 ++++---- src/QLogger.cpp | 21 +++++++++++++++++++-- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/cacic-teste/testcacic.cpp b/cacic-teste/testcacic.cpp index 3950e7c..d06e034 100644 --- a/cacic-teste/testcacic.cpp +++ b/cacic-teste/testcacic.cpp @@ -266,16 +266,16 @@ void CTestCacic::testColeta() void CTestCacic::testLogger() { QLogger::QLoggerManager *logManager = QLogger::QLoggerManager::getInstance(); - logManager->addDestination("./log.txt","teste",QLogger::DebugLevel); + logManager->addDestination("log.txt","teste",QLogger::DebugLevel); - QLogger::QLog_Debug("teste", "Teste do módulo logger."); + QLogger::QLog_Debug("teste", "Teste do modulo logger."); - QFile logFile("./log.txt"); + QFile logFile("log.txt"); if(logFile.exists()) logFile.open(QIODevice::ReadOnly); QVERIFY(logManager && logFile.exists() && - logFile.readLine().contains("Teste do módulo logger.") + logFile.readLine().contains("Teste do modulo logger.") ); logManager->closeLogger(); diff --git a/src/QLogger.cpp b/src/QLogger.cpp index 5ece2a5..c11adf4 100644 --- a/src/QLogger.cpp +++ b/src/QLogger.cpp @@ -113,6 +113,7 @@ namespace QLogger bool QLoggerManager::addDestination(const QString &fileDest, const QStringList &modules, LogLevel level) { QLoggerWriter *log; + foreach (QString module, modules) { if (!moduleDest.contains(module)) @@ -139,13 +140,29 @@ namespace QLogger void QLoggerWriter::write(const QString &module, const QString &message) { + QString originalDir = QDir::currentPath(); QString _fileName = m_fileDestination; int MAX_SIZE = 1024 * 1024; + + QStringList fileDestSplit = _fileName.split("/"); + QString dirDest; + + for(int i = 0 ; i < fileDestSplit.size() ; ++i ) + { + if( !(i == fileDestSplit.size() - 1) ) // last fileDestSplit element + { + dirDest.append(fileDestSplit[i] + "/"); + } + } + QDir dir(QDir::currentPath()); - if (!dir.exists("logs")) - dir.mkdir("logs"); + + if (!dir.exists(dirDest)) + dir.mkdir(dirDest); + +// dir.cd(dirDest); QFile file(_fileName); QString toRemove = _fileName.section('.',-1); -- libgit2 0.21.2