70 const QMessageLogContext &context,
79 case QtDebugMsg: msgLevel = 0;
break;
80 case QtInfoMsg: msgLevel = 1;
break;
81 case QtWarningMsg: msgLevel = 2;
break;
82 case QtCriticalMsg: msgLevel = 3;
break;
83 case QtFatalMsg: msgLevel = 4;
break;
84 default: msgLevel = 0;
break;
88 if (msgLevel < MNE_LOG_LEVEL)
92 std::string text = msg.toStdString();
94 std::lock_guard<std::mutex> lock(m_mutex);
96#ifdef MNE_LOG_MODE_FORMATTED
97 static bool s_startOfLine =
true;
101 const char* level =
"";
103 case QtDebugMsg: color =
COLOR_DEBUG; level =
"[DEBUG] ";
break;
104 case QtInfoMsg: color =
COLOR_INFO; level =
"[INFO] ";
break;
105 case QtWarningMsg: color =
COLOR_WARN; level =
"[WARN] ";
break;
106 case QtCriticalMsg: color =
COLOR_CRITICAL; level =
"[CRIT] ";
break;
107 case QtFatalMsg: color =
COLOR_FATAL; level =
"[FATAL] ";
break;
108 default: level =
"";
break;
113 std::string sDateTime;
115 std::string prefix = std::string(color) + sDateTime + level +
COLOR_RESET;
119 for (
size_t i = 0; i < text.size(); ++i) {
120 if (s_startOfLine && text[i] !=
'\n') {
122 s_startOfLine =
false;
124 std::cout << text[i];
125 if (text[i] ==
'\n') {
126 s_startOfLine =
true;
130 if (text.empty() || text.back() !=
'\n') {
132 s_startOfLine =
true;
137 if (text.empty() || text.back() !=
'\n') {