Skip to content

Commit 5408969

Browse files
Adding stop / resume functionality
1 parent f6f05e1 commit 5408969

File tree

2 files changed

+40
-1
lines changed

2 files changed

+40
-1
lines changed

QLogger.cpp

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ void QLog_(const QString &module, LogLevel level, const QString &message)
6262

6363
const auto logWriter = manager->getLogWriter(module);
6464

65-
if (logWriter and logWriter->getLevel() <= level)
65+
if (logWriter and !logWriter->isStop() and logWriter->getLevel() <= level)
6666
logWriter->write(module, message, level);
6767
}
6868

@@ -146,6 +146,18 @@ void QLoggerManager::closeLogger()
146146
exit(0);
147147
}
148148

149+
void QLoggerManager::stopQLogger()
150+
{
151+
for (auto logWriter : moduleDest)
152+
logWriter->stop(true);
153+
}
154+
155+
void QLoggerManager::resumeQLogger()
156+
{
157+
for (auto logWriter : moduleDest)
158+
logWriter->stop(false);
159+
}
160+
149161
QLoggerWriter::QLoggerWriter(const QString &fileDestination, LogLevel level)
150162
{
151163
mFileDestination = "logs/" + fileDestination;

QLogger.h

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,18 @@ class QLoggerWriter : public QObject {
129129
*/
130130
void write(const QString& module, const QString& message, const LogLevel& messageLogLevel);
131131

132+
/**
133+
* @brief Stops the log writer
134+
* @param stop True to be stop, otherwise false
135+
*/
136+
void stop(bool stop) { mIsStop = stop; }
137+
138+
/**
139+
* @brief Returns if the log writer is stop from writing.
140+
* @return True if is stop, otherwise false
141+
*/
142+
bool isStop() const { return mIsStop;}
143+
132144
private:
133145
/**
134146
* @brief Path and name of the file that will store the logs.
@@ -138,6 +150,10 @@ class QLoggerWriter : public QObject {
138150
* @brief Maximum log level allowed for the file.
139151
*/
140152
LogLevel m_level;
153+
/**
154+
* @brief Defines if the QLogWriter is currently stop and doesn't write to file
155+
*/
156+
bool mIsStop = false;
141157

142158
QString renameFileIfFull();
143159
};
@@ -192,6 +208,17 @@ class QLoggerManager : public QThread {
192208
* @brief This method closes the logger and the thread it represents.
193209
*/
194210
void closeLogger();
211+
212+
/**
213+
* @brief stopQLogger Stops all QLogWriters
214+
*/
215+
void stopQLogger();
216+
217+
/**
218+
* @brief resumeQLogger Resumes all QLogWriters that where stop
219+
*/
220+
void resumeQLogger();
221+
195222
/**
196223
* @brief Mutex to make the method thread-safe.
197224
*/

0 commit comments

Comments
 (0)