#include "loggerEngine.h" /***************************************************************************************************** Custom Logger Engine for debugging on framebuffer *****************************************************************************************************/ loggerEngine_fb::loggerEngine_fb(QTextEdit *parent) : QxtLoggerEngine(){ // TODO: silly parent storing ... to change! _debugConsole = parent; _initialized = false; setLogLevelsEnabled(QxtLogger::DebugLevel); enableLogging(); } loggerEngine_fb::~loggerEngine_fb(){} void loggerEngine_fb::initLoggerEngine(){ _initialized = true; return; } void loggerEngine_fb::killLoggerEngine(){return;} void loggerEngine_fb::setLogLevelEnabled(QxtLogger::LogLevels level, bool enable){ QxtLoggerEngine::setLogLevelsEnabled(level, enable); if (!enable) QxtLoggerEngine::setLogLevelsEnabled(QxtLogger::DebugLevel); } bool loggerEngine_fb::isInitialized() const{ return _initialized; } void loggerEngine_fb::writeFormatted(QxtLogger::LogLevel level, const QList & msgs){ /* TODO: handle different log levels */ /* write the messages to the debug console */ if (msgs.isEmpty()) return; Q_FOREACH(const QVariant& out, msgs) { if (!out.isNull()) _debugConsole->insertPlainText(out.toString()); } _debugConsole->insertPlainText(QString("\n")); /* move to end of the document */ QTextCursor c = _debugConsole->textCursor(); c.movePosition(QTextCursor::End); _debugConsole->setTextCursor(c); } /***************************************************************************************************** Modified QxtBasicSTDLoggerEngine *****************************************************************************************************/ loggerEngine_std::loggerEngine_std() : QxtBasicSTDLoggerEngine(){} loggerEngine_std::~loggerEngine_std(){} void loggerEngine_std::writeToStdErr(const QString& str_level, const QList &msgs){ if (msgs.isEmpty()) return; QString header = '[' + QTime::currentTime().toString("hh:mm:ss.zzz") + "] "; QTextStream* errstream = stdErrStream(); Q_ASSERT(errstream); *errstream << header; Q_FOREACH(const QVariant& out, msgs) { if (!out.isNull()) *errstream << out.toString(); } *errstream << endl; } void loggerEngine_std::writeToStdOut(const QString& level, const QList & msgs){ if (msgs.isEmpty()) return; QString header = '[' + QTime::currentTime().toString("hh:mm:ss.zzz") + "] [" + level + "] "; QTextStream* outstream = stdOutStream(); Q_ASSERT(outstream); *outstream << header; Q_FOREACH(const QVariant& out, msgs){ if (!out.isNull()){ *outstream << out.toString(); } } *outstream << endl; }