У меня есть этот код:
void myMessageHandler(QtMsgType type, const QMessageLogContext &, const QString & msg)
{
QTime time = QTime::currentTime();
QString formattedTime = time.toString("hh:mm:ss");
QByteArray formattedTimeMsg = formattedTime.toLocal8Bit();
QString txt;
switch (type) {
case QtDebugMsg:
txt = QString("%1: Debug: %2").arg(formattedTime, msg);
break;
case QtWarningMsg:
txt = QString("%1: Warning: %2").arg(formattedTime, msg);
break;
case QtCriticalMsg:
txt = QString("%1: Critical: %2").arg(formattedTime, msg);
break;
case QtFatalMsg:
txt = QString("%1: Fatal: %2").arg(formattedTime, msg);
break;
}
QFile outFile("debug.log");
outFile.open(QIODevice::WriteOnly | QIODevice::Append);
QTextStream ts(&outFile);
ts << txt << endl;
}
, который работает очень хорошо, сохраняя все журналы консоли во внешний файл debug.log.
Однако я не знаю, как настроить его для форматирования файла как UTF8, потому что некоторые из моих локальных специальных символов не могут быть правильно прочитаны при открытии файла.
А также, как мне сделать новую строку после каждой записи? Все в одной строке
зависит от того, в каком приложении я открываю файл журнала - блокнот не показывает новые строки, блокнот ++ делает, wordpad также не ...)
Большое спасибо за вашу помощь, ребята!