diff -r 6aeb7a756187 -r 3c88a81ff781 qstmgesturelib/qstmfilelogger/qstmfilelogger.cpp --- a/qstmgesturelib/qstmfilelogger/qstmfilelogger.cpp Thu Sep 23 15:32:11 2010 -0400 +++ b/qstmgesturelib/qstmfilelogger/qstmfilelogger.cpp Fri Oct 15 17:30:59 2010 -0400 @@ -23,28 +23,62 @@ #include #include "qstmfilelogger.h" +#define BUF_SIZE 512*1004 QStm_FileLogger* QStm_FileLogger::m_instance = 0; -QStm_FileLogger::QStm_FileLogger() +QStm_FileLogger::QStm_FileLogger() : QObject(), m_file(0), m_stream(0), m_enabled(0) { +#ifdef GESTURES_LOGTOFILE QString fname = getLogFileName(); m_file = new QFile(fname); m_file->open(QIODevice::ReadWrite | QIODevice::Text); m_stream = new QTextStream(m_file); +#else + m_buffer = new QString(); + m_buffer->reserve(BUF_SIZE); + m_debug = new QDebug(m_buffer); + m_noDebug = new QNoDebug(); + connect(&m_flushTimer, SIGNAL(timeout()), this, SLOT(doFlush())); + m_flushTimer.start(5000); +#endif } QStm_FileLogger::~QStm_FileLogger() { +#ifdef GESTURES_LOGTOFILE delete m_stream; m_file->close(); delete m_file; +#else + m_flushTimer.stop(); + delete m_buffer; + delete m_debug; +#endif +} + + +void QStm_FileLogger::enable(bool on) +{ + m_enabled = on; + if (m_enabled) { + if (!m_buffer) { + m_buffer = new QString(); + m_buffer->reserve(BUF_SIZE); + } + m_flushTimer.start(5000); + } + else { + delete m_buffer; + m_buffer = NULL; + m_flushTimer.stop(); + } } QString QStm_FileLogger::getLogFileName() { #ifdef Q_OS_SYMBIAN - QString path = "E:/Others/Logs"; + QString path = "c:/data/Others"; QDir logdir(path); logdir.mkpath(path); #else @@ -63,32 +97,71 @@ void QStm_FileLogger::log(const char* fmt,...) { + if (logger()->isEnabled()) { va_list list; QString logStr; va_start(list, fmt); logStr.vsprintf(fmt, list); logger()->doLog(logStr); va_end(list); + } } void QStm_FileLogger::log(const QString& text) { + if (logger()->isEnabled()) { logger()->doLog(text); + } } void QStm_FileLogger::doLog(const QString& text) -{ - *m_stream << QDateTime::currentDateTime().toString("dd-MM-yy hh:mm:ss.zzz") << " " << +{ + if (m_enabled) { +#ifdef GESTURES_LOGTOFILE + *m_stream << QDateTime::currentDateTime().toString("hh:mm:ss.zzz") << " " << text << "\n"; +#else + if (m_buffer->size() >= BUF_SIZE) { + //doFlush(); + } + *m_debug << QDateTime::currentDateTime().toString("hh:mm:ss.zzz") << " " << + text << "\n"; +#endif + } } void QStm_FileLogger::doLog(const char* text) { - *m_stream << QDateTime::currentDateTime().toString("dd-MM-yy hh:mm:ss.zzz") << " " << + if (m_enabled) { +#ifdef GESTURES_LOGTOFILE + *m_stream << QDateTime::currentDateTime().toString("hh:mm:ss.zzz") << " " << text << "\n"; +#else + if (m_buffer->size() >= BUF_SIZE) { + //doFlush(); + } + *m_debug << QDateTime::currentDateTime().toString("hh:mm:ss.zzz") << " " << + text << "\n"; +#endif + } } - + + +void QStm_FileLogger::doFlush() +{ + if (m_enabled) { +#ifdef GESTURES_LOGTOFILE + if (m_stream) m_stream->flush(); +#else + if (!m_buffer->isEmpty()) { + qDebug() << *m_buffer; + m_buffer->clear(); + } +#endif + } +} + QStm_FileLogger* QStm_FileLogger::logger() { if (!m_instance) { @@ -96,3 +169,11 @@ } return m_instance; } + +QDebug QStm_FileLogger::debug() +{ + if (logger()->isEnabled()) { + *logger()->m_debug << QDateTime::currentDateTime().toString("hh:mm:ss.zzz") << " "; + } + return *logger()->m_debug; +}