diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-08-27 13:16:55 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-08-27 13:16:55 +0000 |
| commit | 1284e4f4efa9a810445e6cf34fa15d325f26a79e (patch) | |
| tree | f827ae9eb5bdf4b2104daa95ca0b50e47b5fa97b /src/QXmppLogger.cpp | |
| parent | ce3fc8a796f9ba14dac0c77e6d3c102c8552b172 (diff) | |
| download | qxmpp-1284e4f4efa9a810445e6cf34fa15d325f26a79e.tar.gz | |
Improve QXmppLogger:
* make file and stdout logging formats consistent
* make it possible to select which message types to log
Diffstat (limited to 'src/QXmppLogger.cpp')
| -rw-r--r-- | src/QXmppLogger.cpp | 45 |
1 files changed, 35 insertions, 10 deletions
diff --git a/src/QXmppLogger.cpp b/src/QXmppLogger.cpp index 107e5c26..05a028a8 100644 --- a/src/QXmppLogger.cpp +++ b/src/QXmppLogger.cpp @@ -24,9 +24,9 @@ #include <iostream> +#include <QDateTime> #include <QTextStream> #include <QFile> -#include <QTime> #include "QXmppLogger.h" @@ -51,13 +51,22 @@ static const char *typeName(QXmppLogger::MessageType type) } } +static QString formatted(QXmppLogger::MessageType type, const QString& text) +{ + return QDateTime::currentDateTime().toString() + " " + + QString::fromLatin1(typeName(type)) + " " + + text; +} + /// Constructs a new QXmppLogger. /// /// \param parent QXmppLogger::QXmppLogger(QObject *parent) - : QObject(parent), m_loggingType(QXmppLogger::NoLogging), - m_logFilePath("QXmppClientLog.log") + : QObject(parent), + m_loggingType(QXmppLogger::NoLogging), + m_logFilePath("QXmppClientLog.log"), + m_messageTypes(QXmppLogger::AnyMessage) { } @@ -67,10 +76,7 @@ QXmppLogger::QXmppLogger(QObject *parent) QXmppLogger* QXmppLogger::getLogger() { if(!m_logger) - { m_logger = new QXmppLogger(); - m_logger->setLoggingType(FileLogging); - } return m_logger; } @@ -92,6 +98,23 @@ void QXmppLogger::setLoggingType(QXmppLogger::LoggingType type) m_loggingType = type; } +/// Returns the types of messages to log. +/// + +QXmppLogger::MessageTypes QXmppLogger::messageTypes() +{ + return m_messageTypes; +} + +/// Sets the types of messages to log. +/// +/// \param types + +void QXmppLogger::setMessageTypes(QXmppLogger::MessageTypes types) +{ + m_messageTypes = types; +} + /// Add a logging message. /// /// \param type @@ -99,6 +122,10 @@ void QXmppLogger::setLoggingType(QXmppLogger::LoggingType type) void QXmppLogger::log(QXmppLogger::MessageType type, const QString& text) { + // filter messages + if (!m_messageTypes.testFlag(type)) + return; + switch(m_loggingType) { case QXmppLogger::FileLogging: @@ -106,13 +133,11 @@ void QXmppLogger::log(QXmppLogger::MessageType type, const QString& text) QFile file(m_logFilePath); file.open(QIODevice::Append); QTextStream stream(&file); - stream << QTime::currentTime().toString("hh:mm:ss.zzz") << - " " << typeName(type) << " " << - text << "\n\n"; + stream << formatted(type, text) << "\n\n"; } break; case QXmppLogger::StdoutLogging: - std::cout << typeName(type) << " " << qPrintable(text) << std::endl; + std::cout << qPrintable(formatted(type, text)) << std::endl; break; case QXmppLogger::SignalLogging: emit message(type, text); |
