X-Git-Url: https://git.siccegge.de//index.cgi?p=frida%2Ffrida.git;a=blobdiff_plain;f=src%2Fgui%2Fwidgets%2FLogDockAppender.cxx;h=a0db7a4140f8fe9319706e681c4bd32ebef26ef7;hp=f6419c27601b346d7651fe67fd74caaa2cf0b5bf;hb=ad626cc187f94df0ce811427af717a202ff82e8b;hpb=5514e0b76ec9af2fa67abebe77cfe26052f2326f diff --git a/src/gui/widgets/LogDockAppender.cxx b/src/gui/widgets/LogDockAppender.cxx index f6419c2..a0db7a4 100644 --- a/src/gui/widgets/LogDockAppender.cxx +++ b/src/gui/widgets/LogDockAppender.cxx @@ -2,6 +2,7 @@ #include "LogDock.hxx" #include +#include using namespace log4cxx::helpers; @@ -15,32 +16,35 @@ LogDockAppender::LogDockAppender() 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; + 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); + + QColor rowcolor(0xff, 0xff, 0xff, 0xff); + if (log4cxx::Level::getFatal() == event->getLevel()) { + rowcolor.setRgb(0xff, 0x00, 0x22); + } else if (log4cxx::Level::getError() == event->getLevel()) { + rowcolor.setRgb(0xff, 0x00, 0x00); + } else if (log4cxx::Level::getWarn() == event->getLevel()) { + rowcolor.setRgb(0x00, 0xff, 0xff); + } else if (log4cxx::Level::getTrace() == event->getLevel()) { + rowcolor.setRgb(0xee, 0xff, 0xee); + } + emit newLogEntry(rowcolor, timestampencode.c_str(), + event->getLevel()->toString().c_str(), + messageencode.c_str()); } void LogDockAppender::close() {