1818
1919
2020#if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0))
21- QRecursiveMutex Logger::MapLock;
21+ QRecursiveMutex Logger::MapLock;
2222#else
23- QMutex Logger::MapLock{ QMutex::Recursive };
23+ QMutex Logger::MapLock{ QMutex::Recursive };
2424#endif
2525
26- QMap<QString,Logger*> Logger::LoggerMap { };
27- QAtomicInteger<int > Logger::GLOBAL_MIN_LOG_LEVEL { static_cast <int >(Logger::UNSET) };
26+ QMap<QString, Logger*> Logger::LoggerMap{ };
27+ QAtomicInteger<int > Logger::GLOBAL_MIN_LOG_LEVEL{ static_cast <int >(Logger::LogLevel::LOG_UNSET) };
2828
2929namespace
3030{
31- const char * LogLevelStrings[] = { " " , " DEBUG" , " INFO" , " WARNING" , " ERROR" , " OFF" };
31+ const char * LogLevelStrings[] = { " " , " DEBUG" , " INFO" , " WARNING" , " ERROR" , " OFF" };
3232#ifndef _WIN32
33- const int LogLevelSysLog[] = { LOG_DEBUG, LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERR };
33+ const int LogLevelSysLog[] = { LOG_DEBUG, LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERR };
3434#endif
3535
36- const size_t MAX_IDENTIFICATION_LENGTH = 22 ;
36+ const size_t MAX_IDENTIFICATION_LENGTH = 22 ;
3737
38- QAtomicInteger<unsigned int > LoggerCount = 0 ;
39- QAtomicInteger<unsigned int > LoggerId = 0 ;
38+ QAtomicInteger<unsigned int > LoggerCount = 0 ;
39+ QAtomicInteger<unsigned int > LoggerId = 0 ;
4040
41- const int MAX_LOG_MSG_BUFFERED = 500 ;
42- const int MaxRepeatCountSize = 200 ;
43- QThreadStorage<int > RepeatCount;
44- QThreadStorage<Logger::T_LOG_MESSAGE> RepeatMessage;
41+ const int MAX_LOG_MSG_BUFFERED = 500 ;
42+ const int MaxRepeatCountSize = 200 ;
43+ QThreadStorage<int > RepeatCount;
44+ QThreadStorage<Logger::T_LOG_MESSAGE> RepeatMessage;
4545} // namespace
4646
47- Logger* Logger::getInstance (const QString & name, const QString & subName, Logger::LogLevel minLevel)
47+ Logger* Logger::getInstance (const QString& name, const QString& subName, Logger::LogLevel minLevel)
4848{
4949 QMutexLocker lock (&MapLock);
5050
@@ -59,26 +59,26 @@ Logger* Logger::getInstance(const QString & name, const QString & subName, Logge
5959 return log;
6060}
6161
62- void Logger::deleteInstance (const QString & name, const QString & subName)
62+ void Logger::deleteInstance (const QString& name, const QString& subName)
6363{
6464 QMutexLocker lock (&MapLock);
6565
6666 if (name.isEmpty ())
6767 {
68- for (auto * logger : std::as_const (LoggerMap)) {
68+ for (auto * logger : std::as_const (LoggerMap)) {
6969 logger->deleteLater ();
7070 }
7171
7272 LoggerMap.clear ();
7373 }
7474 else
7575 {
76- LoggerMap.value (name + subName, nullptr )->deleteLater ();
76+ LoggerMap.value (name + subName, nullptr )->deleteLater ();
7777 LoggerMap.remove (name + subName);
7878 }
7979}
8080
81- void Logger::setLogLevel (LogLevel level, const QString & name, const QString & subName)
81+ void Logger::setLogLevel (LogLevel level, const QString& name, const QString& subName)
8282{
8383 if (name.isEmpty ())
8484 {
@@ -91,7 +91,7 @@ void Logger::setLogLevel(LogLevel level, const QString & name, const QString & s
9191 }
9292}
9393
94- Logger::LogLevel Logger::getLogLevel (const QString & name, const QString & subName)
94+ Logger::LogLevel Logger::getLogLevel (const QString& name, const QString& subName)
9595{
9696 if (name.isEmpty ())
9797 {
@@ -102,7 +102,7 @@ Logger::LogLevel Logger::getLogLevel(const QString & name, const QString & subNa
102102 return log->getMinLevel ();
103103}
104104
105- Logger::Logger (const QString & name, const QString & subName, LogLevel minLevel)
105+ Logger::Logger (const QString& name, const QString& subName, LogLevel minLevel)
106106 : QObject()
107107 , _name(name)
108108 , _subName(subName)
@@ -117,7 +117,7 @@ Logger::Logger (const QString & name, const QString & subName, LogLevel minLevel
117117#ifndef _WIN32
118118 if (_syslogEnabled)
119119 {
120- openlog (nullptr , LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL0);
120+ openlog (nullptr , LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL0);
121121 }
122122#endif
123123 }
@@ -136,10 +136,10 @@ Logger::~Logger()
136136 }
137137}
138138
139- void Logger::write (const Logger::T_LOG_MESSAGE & message)
139+ void Logger::write (const Logger::T_LOG_MESSAGE& message)
140140{
141141 QString location;
142- if (message.level == Logger::DEBUG )
142+ if (message.level == Logger::LogLevel::LOG_DEBUG )
143143 {
144144 location = QString (" %1:%2:%3() | " )
145145 .arg (message.fileName )
@@ -151,11 +151,12 @@ void Logger::write(const Logger::T_LOG_MESSAGE & message)
151151 name.resize (MAX_IDENTIFICATION_LENGTH, ' ' );
152152
153153 const QDateTime timestamp = QDateTime::fromMSecsSinceEpoch (message.utime );
154- QString msg = timestamp.toString (Qt::ISODateWithMs)
155- % " " % name
156- % " : <" % LogLevelStrings[message.level ]
157- % " > " % location
158- % message.message % " \n " ;
154+ QString msg = QString (" %1 %2 : <%3> %4%5\n " )
155+ .arg (timestamp.toString (Qt::ISODateWithMs))
156+ .arg (name)
157+ .arg (LogLevelStrings[message.level ])
158+ .arg (location)
159+ .arg (message.message );
159160
160161#ifdef _WIN32
161162 if (IsDebuggerPresent ())
@@ -164,49 +165,49 @@ void Logger::write(const Logger::T_LOG_MESSAGE & message)
164165 }
165166 else
166167#endif
167- std::cout << msg.toStdString ();
168+ std::cout << msg.toStdString ();
168169
169170 emit newLogMessage (message);
170171}
171172
172173void Logger::Message (LogLevel level, const char * sourceFile, const char * func, unsigned int line, const char * fmt, ...)
173174{
174- Logger:: LogLevel globalLevel = static_cast <Logger:: LogLevel> (int (GLOBAL_MIN_LOG_LEVEL));
175+ LogLevel globalLevel = LogLevel (int (GLOBAL_MIN_LOG_LEVEL));
175176
176- if ( (globalLevel == Logger::UNSET && level < _minLevel) // no global level, use level from logger
177- || (globalLevel > Logger::UNSET && level < globalLevel) ) // global level set, use global level
177+ if ((globalLevel == Logger::LogLevel::LOG_UNSET && level < _minLevel) // no global level, use level from logger
178+ || (globalLevel > LogLevel::LOG_UNSET && level < globalLevel)) // global level set, use global level
178179 {
179180 return ;
180181 }
181182
182183 const size_t max_msg_length = 1024 ;
183184 char msg[max_msg_length];
184185 va_list args;
185- va_start (args, fmt);
186- vsnprintf (msg, max_msg_length, fmt, args);
187- va_end (args);
186+ va_start (args, fmt);
187+ vsnprintf (msg, max_msg_length, fmt, args);
188+ va_end (args);
188189
189190 const auto repeatedSummary = [&]
190- {
191- Logger::T_LOG_MESSAGE repMsg = RepeatMessage.localData ();
192- repMsg.message = " Previous line repeats " + QString::number (RepeatCount.localData ()) + " times" ;
193- repMsg.utime = QDateTime::currentMSecsSinceEpoch ();
191+ {
192+ Logger::T_LOG_MESSAGE repMsg = RepeatMessage.localData ();
193+ repMsg.message = " Previous line repeats " + QString::number (RepeatCount.localData ()) + " times" ;
194+ repMsg.utime = QDateTime::currentMSecsSinceEpoch ();
194195
195- write (repMsg);
196+ write (repMsg);
196197#ifndef _WIN32
197- if ( _syslogEnabled && repMsg.level >= Logger::WARNING )
198- {
199- syslog (LogLevelSysLog[repMsg.level ], " Previous line repeats %d times" , RepeatCount.localData ());
200- }
198+ if (_syslogEnabled && repMsg.level >= Logger::WARNING)
199+ {
200+ syslog (LogLevelSysLog[repMsg.level ], " Previous line repeats %d times" , RepeatCount.localData ());
201+ }
201202#endif
202203
203- RepeatCount.setLocalData (0 );
204- };
204+ RepeatCount.setLocalData (0 );
205+ };
205206
206- if (RepeatMessage.localData ().loggerName == _name &&
207- RepeatMessage.localData ().loggerSubName == _subName &&
207+ if (RepeatMessage.localData ().loggerName == _name &&
208+ RepeatMessage.localData ().loggerSubName == _subName &&
208209 RepeatMessage.localData ().function == func &&
209- RepeatMessage.localData ().message == msg &&
210+ RepeatMessage.localData ().message == msg &&
210211 RepeatMessage.localData ().line == line)
211212 {
212213 if (RepeatCount.localData () >= MaxRepeatCountSize)
@@ -227,21 +228,21 @@ void Logger::Message(LogLevel level, const char* sourceFile, const char* func, u
227228
228229 Logger::T_LOG_MESSAGE logMsg;
229230
230- logMsg.loggerName = _name;
231- logMsg.loggerSubName = _subName;
232- logMsg.function = QString (func);
233- logMsg.line = line;
234- logMsg.fileName = FileUtils::getBaseName (sourceFile);
235- logMsg.utime = QDateTime::currentMSecsSinceEpoch ();
236- logMsg.message = QString (msg);
237- logMsg.level = level;
231+ logMsg.loggerName = _name;
232+ logMsg.loggerSubName = _subName;
233+ logMsg.function = QString (func);
234+ logMsg.line = line;
235+ logMsg.fileName = FileUtils::getBaseName (sourceFile);
236+ logMsg.utime = QDateTime::currentMSecsSinceEpoch ();
237+ logMsg.message = QString (msg);
238+ logMsg.level = level;
238239 logMsg.levelString = LogLevelStrings[level];
239240
240241 write (logMsg);
241242#ifndef _WIN32
242- if ( _syslogEnabled && level >= Logger::WARNING )
243+ if (_syslogEnabled && level >= Logger::WARNING)
243244 {
244- syslog (LogLevelSysLog[level], " %s" , msg);
245+ syslog (LogLevelSysLog[level], " %s" , msg);
245246 }
246247#endif
247248 RepeatMessage.setLocalData (logMsg);
@@ -269,7 +270,7 @@ QJsonArray LoggerManager::getLogMessageBuffer(Logger::LogLevel filter) const
269270{
270271 QJsonArray messageArray;
271272 {
272- for (const auto & logLine : std::as_const (_logMessageBuffer))
273+ for (const auto & logLine : std::as_const (_logMessageBuffer))
273274 {
274275 if (logLine.level >= filter)
275276 {
@@ -290,7 +291,7 @@ QJsonArray LoggerManager::getLogMessageBuffer(Logger::LogLevel filter) const
290291 return messageArray;
291292}
292293
293- void LoggerManager::handleNewLogMessage (const Logger::T_LOG_MESSAGE & msg)
294+ void LoggerManager::handleNewLogMessage (const Logger::T_LOG_MESSAGE& msg)
294295{
295296 _logMessageBuffer.push_back (msg);
296297 if (_logMessageBuffer.length () > _loggerMaxMsgBufferSize)
0 commit comments