diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-03-08 19:05:38 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-03-08 19:05:38 +0000 |
| commit | 7ac9d13564742f06d8e82dff6871e54f4a5f260d (patch) | |
| tree | 9891aa2ddfaf08b155727f23b85ed6f018a67658 /source/QXmppLogger.cpp | |
| parent | ce3f7d3096e8d5bc2a17a06a34a0a9889ae701ac (diff) | |
| download | qxmpp-7ac9d13564742f06d8e82dff6871e54f4a5f260d.tar.gz | |
rework QXmppLogger to always use QTextStream
Diffstat (limited to 'source/QXmppLogger.cpp')
| -rw-r--r-- | source/QXmppLogger.cpp | 48 |
1 files changed, 32 insertions, 16 deletions
diff --git a/source/QXmppLogger.cpp b/source/QXmppLogger.cpp index 18fc6d30..2bbf727e 100644 --- a/source/QXmppLogger.cpp +++ b/source/QXmppLogger.cpp @@ -21,28 +21,55 @@ * */ +#include <QFile> +#include <QTime> #include "QXmppLogger.h" -#include <iostream> -#include <QTime> QXmppLogger* QXmppLogger::m_logger = 0; QXmppLogger::QXmppLogger() - : m_loggingType(QXmppLogger::FILE), m_file("QXmppClientLog.log") + : m_loggingType(QXmppLogger::NONE), m_file(0) +{ +} + +QXmppLogger::~QXmppLogger() { + delete m_file; } QXmppLogger* QXmppLogger::getLogger() { if(!m_logger) + { m_logger = new QXmppLogger(); + m_logger->setLoggingType(QXmppLogger::FILE); + } return m_logger; } void QXmppLogger::setLoggingType(QXmppLogger::LoggingType log) { + if (m_file) + { + delete m_file; + m_file = 0; + } + switch(log) + { + case QXmppLogger::FILE: + m_file = new QFile("QXmppClientLog.log"); + m_file->open(QIODevice::Append); + break; + case QXmppLogger::STDOUT: + m_file = new QFile(); + m_file->open(stdout, QIODevice::WriteOnly); + break; + case QXmppLogger::NONE: + break; + } + m_stream.setDevice(m_file); m_loggingType = log; } @@ -53,22 +80,11 @@ QXmppLogger::LoggingType QXmppLogger::loggingType() QXmppLogger &QXmppLogger::operator<<(const QByteArray &str) { - switch(m_loggingType) + if (m_loggingType != NONE) { - case QXmppLogger::FILE: - m_file.open(QIODevice::Append); - m_stream.setDevice(&m_file); m_stream << QTime::currentTime().toString("hh:mm:ss.zzz") << " : "<< str << "\n\n"; - m_file.close(); - break; - case QXmppLogger::STDOUT: - std::cout<<str.constData()<<std::endl; - break; - case QXmppLogger::NONE: - break; - default: - break; + m_stream.flush(); } return *this; } |
