#include "logger.h" #include #include #include QFile* Logger::_logFile = Q_NULLPTR; QHash Logger::_logTitles = { {QtMsgType::QtDebugMsg, " Debug "}, {QtMsgType::QtInfoMsg, " Info "}, {QtMsgType::QtWarningMsg, "Warning "}, {QtMsgType::QtCriticalMsg, "Critical"}, {QtMsgType::QtFatalMsg, " Fatal "} }; Logger::Logger(QString fileName) { _logFile = new QFile; //_logFile->setFileName(fileName); _logFile->setFileName(fileName); _logFile->open(QIODevice::Append | QIODevice::Text); qInstallMessageHandler(Logger::messageOutput); } Logger::~Logger() { qDebug() << "Logger closed" << "\n"; delete _logFile; } void Logger::makeFinishingLine() { _logFile->write( "**************************************************************************************\n"); _logFile->flush(); } void Logger::messageOutput(QtMsgType type, const QMessageLogContext& context, const QString& msg) { QString log = QObject::tr("%1 | %2 | %3 | %4 | %5 | %6\n"). arg(QDateTime::currentDateTime().toString("yyyy/MM/dd - hh:mm:ss")). arg(Logger::_logTitles.value(type)). arg(context.line). arg(QString(context.file). section('\\', -1)). //File name without file path arg(QString(context.function). section('(', -2, -2). //Function name only section(' ', -1). section(':', -1)). arg(msg); _logFile->write(log.toLocal8Bit()); _logFile->flush(); }