void StdLogOutput::print(const LogEntry &entry) { //const QString timestamp(entry.timestamp().toString("yy-MM-dd::hh:mm:ss")); const QString timestamp(entry.timestamp().toString("hh:mm:ss")); switch(entry.type()) { case LogEntry::DEBUG_LOG: std::cout << QString("%1 %2 %3: %4").arg(timestamp).arg(entry.file()).arg(entry.line()).arg(entry.message()).toStdString() << std::endl; break; case LogEntry::ERROR_LOG: std::cout << QString("%1 error: %2").arg(timestamp).arg(entry.message()).toStdString() << std::endl; break; case LogEntry::INFORMATION_LOG: case LogEntry::MESSAGE_LOG: case LogEntry::WORKFLOW_LOG: std::cout << QString("%1: %2").arg(timestamp).arg(entry.message()).toStdString() << std::endl; break; case LogEntry::WARNING_LOG: std::cout << QString("%1 warning: %2").arg(timestamp).arg(entry.message()).toStdString() << std::endl; break; case LogEntry::EMPTYLINE_LOG: std::cout << std::endl << std::endl; break; case LogEntry::UNDEFINED_LOG: default: break; } }
void FileLogOutput::print(const LogEntry &entry) { const QString timestamp(entry.timestamp().toString("yy-MM-dd::hh:mm:ss")); //const QString timestamp(entry.timestamp().toString("hh:mm:ss")); switch(entry.type()) { case LogEntry::INFORMATION_LOG: (*m_stream) << QString("%1: %2\n").arg(timestamp).arg(entry.message()); break; case LogEntry::WORKFLOW_LOG: (*m_stream) << QString("%1: f %2\n").arg(timestamp).arg(entry.message()); break; case LogEntry::WARNING_LOG: (*m_stream) << QString("%1 warning: %2\n").arg(timestamp).arg(entry.message()); break; case LogEntry::ERROR_LOG: (*m_stream) << QString("%1 error: %2\n").arg(timestamp).arg(entry.message()); break; case LogEntry::DEBUG_LOG: (*m_stream) << QString("%1 %2 %3: %4\n").arg(timestamp).arg(entry.file()).arg(entry.line()).arg(entry.message()); break; case LogEntry::EMPTYLINE_LOG: (*m_stream) << "\n"; break; case LogEntry::MESSAGE_LOG: case LogEntry::UNDEFINED_LOG: default: break; }; m_stream->flush(); }
void LogOutputWidget::print(const LogEntry &entry) { #ifdef _NDEBUG const QString timestamp(entry.timestamp().toString("hh:mm:ss")); #else const QString timestamp(entry.timestamp().toString("hh:mm:ss:zzz")); #endif //const QString timestamp(entry.timestamp().toString("hh:mm:ss")); m_swap->clear(); m_swap->setFont(font()); QString message = entry.message(); switch(entry.type()) { case LogEntry::INFORMATION_LOG: m_swap->textCursor().insertText(QString("%1: %2\n").arg(timestamp).arg(message), m_informationCharFormat); break; case LogEntry::WARNING_LOG: m_swap->textCursor().insertText(QString("%1: %2\n").arg(timestamp).arg(message), m_warningCharFormat); break; case LogEntry::ERROR_LOG: m_swap->textCursor().insertText(QString("%1: %2\n").arg(timestamp).arg(message), m_errorCharFormat); break; case LogEntry::DEBUG_LOG: m_swap->textCursor().insertText(QString("%1 %2 %3: %4\n").arg(timestamp).arg(entry.file()).arg(entry.line()).arg(message), m_debugCharFormat); break; case LogEntry::MESSAGE_LOG: m_swap->textCursor().insertText(QString("%1: %2\n").arg(timestamp).arg(message), m_messageCharFormat); break; case LogEntry::EMPTYLINE_LOG: m_swap->textCursor().insertText("\n"); break; case LogEntry::WORKFLOW_LOG: case LogEntry::UNDEFINED_LOG: default: break; }; QString htmlMessage = m_swap->toHtml(); QRegExp reEmail("\\b([A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4})\\b"); QRegExp reLink("\\b((ftp|http|https):\\/\\/(\\w+:{0,1}\\w*@)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%@!\\-\\/]))?)\\b"); int pos = 0; while((pos = reEmail.indexIn(message, pos)) != -1) { pos += reEmail.matchedLength(); const QString email = reEmail.capturedTexts()[0]; htmlMessage.replace(email, QString("<a href =\"mailto:%1\">%1</a>").arg(email)); } pos = 0; while((pos = reLink.indexIn(message, pos)) != -1) { pos += reLink.matchedLength(); const QString link = reLink.capturedTexts()[0]; htmlMessage.replace(link, QString("<a href =\"%1\">%1</a>").arg(link)); } m_cursor->insertHtml(htmlMessage); ensureCursorVisible(); update(); }