6 #include <QCoreApplication>
12 #include <QStringBuilder>
18 using namespace swift::config;
58 writeContentToFile(QStringLiteral(
"Logging stops."));
67 if (statusMessage.
isEmpty()) {
return; }
68 if (!m_logFile.
isOpen()) {
return; }
69 if (!m_logPattern.
match(statusMessage)) {
return; }
71 if (categories != m_previousCategories)
73 writeContentToFile(u
"\n[" % categories % u
']');
74 m_previousCategories = categories;
79 writeContentToFile(finalContent);
88 void CFileLogger::removeOldLogFiles()
95 for (
const auto &logFileInfo : dir.entryInfoList())
97 if (logFileInfo.lastModified().daysTo(now) > 7) { dir.remove(logFileInfo.fileName()); }
101 void CFileLogger::writeHeaderToFile()
104 m_stream <<
" version " << CBuildConfig::getVersionString();
108 m_stream <<
"Built from revision " << CBuildConfig::gitHeadSha1();
109 m_stream <<
" on " << CBuildConfig::buildDateAndTime() <<
Qt::endl;
111 m_stream <<
"Built with Qt " << QT_VERSION_STR;
112 m_stream <<
" and running with Qt " << qVersion();
115 m_stream <<
"Application started." <<
Qt::endl;
118 void CFileLogger::writeContentToFile(
const QString &content) { m_stream << content <<
Qt::endl; }
static QString getLogFileName()
Get the log file name.
~CFileLogger()
Destructor.
void writeStatusMessageToFile(const swift::misc::CStatusMessage &statusMessage)
Write single status message to file.
static QString getLogFilePath()
Get the log file path (including its name)
bool match(const CStatusMessage &message) const
Returns true if the given message matches this pattern.
bool isEmpty() const
Message empty.
Streamable status message, e.g.
QString getCategoriesAsString() const
Message categories as string.
const QString & getSeverityAsString() const
Severity as string.
QString getMessage() const
Message.
static const QString & logDirectory()
Directory for log files.
Free functions in swift::misc.
QString logFileName()
Get log file name.
QString applicationName()
Get application name.
QString applicationFilePath()
QDateTime currentDateTime()
QDateTime currentDateTimeUtc()
QString toString(QStringView format) const const
bool mkpath(const QString &dirPath) const const
bool open(FILE *fh, QIODeviceBase::OpenMode mode, QFileDevice::FileHandleFlags handleFlags)
void setFileName(const QString &name)
virtual void close() override
QString completeBaseName() const const
bool isOpen() const const
bool disconnect(const QMetaObject::Connection &connection)
QString number(double n, char format, int precision)
QString currentCpuArchitecture()
QString prettyProductName()
QTextStream & endl(QTextStream &stream)
void setDevice(QIODevice *device)
void setEncoding(QStringConverter::Encoding encoding)