diff --git a/gpt4all-chat/src/logger.cpp b/gpt4all-chat/src/logger.cpp index 6c730757..ab85d508 100644 --- a/gpt4all-chat/src/logger.cpp +++ b/gpt4all-chat/src/logger.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #include #include @@ -62,8 +63,11 @@ void Logger::messageHandler(QtMsgType type, const QMessageLogContext &, const QS } // Get time and date auto timestamp = QDateTime::currentDateTime().toString(); - // Write message + const std::string out = u"[%1] (%2): %3\n"_s.arg(typeString, timestamp, msg).toStdString(); + + // Write message + QMutexLocker locker(&logger->m_mutex); logger->m_file.write(out.c_str()); logger->m_file.flush(); std::cerr << out; diff --git a/gpt4all-chat/src/logger.h b/gpt4all-chat/src/logger.h index 5ca865c0..09d35417 100644 --- a/gpt4all-chat/src/logger.h +++ b/gpt4all-chat/src/logger.h @@ -2,19 +2,23 @@ #define LOGGER_H #include +#include #include #include -class Logger -{ - QFile m_file; - - static void messageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg); - +class Logger { public: + explicit Logger(); + static Logger *globalInstance(); - explicit Logger(); +private: + static void messageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg); + +private: + QFile m_file; + QMutex m_mutex; + friend class MyLogger; };