X-Git-Url: https://git.siccegge.de//index.cgi?p=frida%2Ffrida.git;a=blobdiff_plain;f=src%2Fgui%2Fwidgets%2FLogDockAppender.cxx;fp=src%2Fgui%2Fwidgets%2FLogDockAppender.cxx;h=f6419c27601b346d7651fe67fd74caaa2cf0b5bf;hp=0000000000000000000000000000000000000000;hb=5514e0b76ec9af2fa67abebe77cfe26052f2326f;hpb=55eb2a804c19c35a9006a2241a0feefe219bf21e diff --git a/src/gui/widgets/LogDockAppender.cxx b/src/gui/widgets/LogDockAppender.cxx new file mode 100644 index 0000000..f6419c2 --- /dev/null +++ b/src/gui/widgets/LogDockAppender.cxx @@ -0,0 +1,52 @@ +#include "LogDockAppender.hxx" +#include "LogDock.hxx" + +#include + +using namespace log4cxx::helpers; + +IMPLEMENT_LOG4CXX_OBJECT(LogDockAppender) + +LogDockAppender::LogDockAppender() +: timeformat("%T") { + layout = new PatternLayout("%d{MMM dd yyyy HH:mm:ss,SSS} - %m %n"); +} + +void LogDockAppender::append(const spi::LoggingEventPtr& event, Pool& p) { + log4cxx::LogString message, timestamp; + + if ( this->layout == NULL ) { + LOG4CXX_ENCODE_CHAR(nameStr, name); + std::string msg("No Layout set for the appender named [ "); + msg.append(nameStr); + msg.append(" ]."); + + LOG4CXX_DECODE_CHAR(msgL, msg); + errorHandler->error(msgL); + return; + } + + layout->format(message, event, p); + timeformat.format(timestamp, event->getTimeStamp(), p); + LOG4CXX_ENCODE_CHAR(messageencode, message); + LOG4CXX_ENCODE_CHAR(timestampencode, timestamp); + + int rowcount = target->rowCount(); + target->insertRow(rowcount); + target->setItem(rowcount, 0, new QTableWidgetItem(timestampencode.c_str())); + target->setItem(rowcount, 1, new QTableWidgetItem(event->getLevel()->toString().c_str())); + target->setItem(rowcount, 2, new QTableWidgetItem(messageencode.c_str())); + target->resizeColumnsToContents(); +} + +void LogDockAppender::setTarget(LogDock *target) { + this->target = target; +} + +void LogDockAppender::close() { + +} + +bool LogDockAppender::requiresLayout() const { + return true; +}