diff --git a/src/app/filelogger.cpp b/src/app/filelogger.cpp index 54b8ed8e6..31577255d 100644 --- a/src/app/filelogger.cpp +++ b/src/app/filelogger.cpp @@ -28,6 +28,8 @@ #include "filelogger.h" +#include + #include #include #include @@ -36,11 +38,16 @@ #include "base/logger.h" #include "base/utils/fs.h" +namespace +{ + const std::chrono::seconds FLUSH_INTERVAL {2}; +} + FileLogger::FileLogger(const QString &path, const bool backup, const int maxSize, const bool deleteOld, const int age, const FileLogAgeType ageType) : m_backup(backup) , m_maxSize(maxSize) { - m_flusher.setInterval(0); + m_flusher.setInterval(FLUSH_INTERVAL); m_flusher.setSingleShot(true); connect(&m_flusher, &QTimer::timeout, this, &FileLogger::flushLog); @@ -114,23 +121,24 @@ void FileLogger::addLogMessage(const Log::Msg &msg) { if (!m_logFile.isOpen()) return; - QTextStream str(&m_logFile); + QTextStream stream(&m_logFile); + stream.setCodec("UTF-8"); switch (msg.type) { case Log::INFO: - str << "(I) "; + stream << "(I) "; break; case Log::WARNING: - str << "(W) "; + stream << "(W) "; break; case Log::CRITICAL: - str << "(C) "; + stream << "(C) "; break; default: - str << "(N) "; + stream << "(N) "; } - str << QDateTime::fromMSecsSinceEpoch(msg.timestamp).toString(Qt::ISODate) << " - " << msg.message << endl; + stream << QDateTime::fromMSecsSinceEpoch(msg.timestamp).toString(Qt::ISODate) << " - " << msg.message << '\n'; if (m_backup && (m_logFile.size() >= m_maxSize)) { closeLogFile(); @@ -146,7 +154,8 @@ void FileLogger::addLogMessage(const Log::Msg &msg) openLogFile(); } else { - m_flusher.start(); + if (!m_flusher.isActive()) + m_flusher.start(); } }