refs #485, allow to close file loggger and using QStringBuilder

This commit is contained in:
Klaus Basan
2016-02-16 15:42:22 +01:00
committed by Mathew Sutcliffe
parent c3722f9198
commit 4a0bc5dda3
2 changed files with 22 additions and 11 deletions

View File

@@ -9,6 +9,7 @@
#include "filelogger.h"
#include <QString>
#include <QStringBuilder>
#include <QDateTime>
#include <QCoreApplication>
#include <QDir>
@@ -16,8 +17,10 @@
namespace BlackMisc
{
CFileLogger::CFileLogger(QObject *parent) : CFileLogger(QCoreApplication::applicationName(), QString(), parent)
CFileLogger::CFileLogger(QObject *parent) :
CFileLogger(QCoreApplication::applicationName(), QString(), parent)
{
// void
}
CFileLogger::CFileLogger(const QString &applicationName, const QString &logPath, QObject *parent) :
@@ -40,24 +43,30 @@ namespace BlackMisc
}
CFileLogger::~CFileLogger()
{
this->close();
}
void CFileLogger::close()
{
if (m_logFile.isOpen())
{
writeContentToFile(QStringLiteral("Application stopped."));
disconnect(this); // disconnect from log handler
writeContentToFile(QStringLiteral("Logging stops."));
m_logFile.close();
}
}
void CFileLogger::ps_writeStatusMessageToFile(const BlackMisc::CStatusMessage &statusMessage)
{
if (!m_logFile.isOpen()) { return; }
if (! m_logPattern.match(statusMessage)) { return; }
QString finalContent = QDateTime::currentDateTime().toString(QStringLiteral("hh:mm:ss "));
finalContent += statusMessage.getHumanReadablePattern();
finalContent += " ";
finalContent += statusMessage.getSeverityAsString();
finalContent += ": ";
finalContent += statusMessage.getMessage();
const QString finalContent(QDateTime::currentDateTime().toString(QStringLiteral("hh:mm:ss "))
% statusMessage.getHumanReadablePattern()
% " "
% statusMessage.getSeverityAsString()
% ": "
% statusMessage.getMessage());
writeContentToFile(finalContent);
}

View File

@@ -27,7 +27,6 @@ namespace BlackMisc
Q_OBJECT
public:
//! Constructor.
//! Filename defaults to QCoreApplication::applicationName() and path to "."
CFileLogger(QObject *parent = nullptr);
@@ -48,8 +47,11 @@ namespace BlackMisc
//! Change the log pattern. Default is to log all messages.
void changeLogPattern(const CLogPattern &pattern) { m_logPattern = pattern; }
private slots:
//! Close file
void close();
private slots:
//! Write single status message to file
void ps_writeStatusMessageToFile(const BlackMisc::CStatusMessage &statusMessage);
private: