From 7ac9d13564742f06d8e82dff6871e54f4a5f260d Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Mon, 8 Mar 2010 19:05:38 +0000 Subject: rework QXmppLogger to always use QTextStream --- source/QXmppLogger.cpp | 48 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 32 insertions(+), 16 deletions(-) (limited to 'source/QXmppLogger.cpp') 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 +#include #include "QXmppLogger.h" -#include -#include 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<