|
@@ -200,7 +200,7 @@ public:
|
|
plog_appender(rtcLogCallbackFunc cb = nullptr) { set_callback(cb); }
|
|
plog_appender(rtcLogCallbackFunc cb = nullptr) { set_callback(cb); }
|
|
|
|
|
|
void set_callback(rtcLogCallbackFunc cb) {
|
|
void set_callback(rtcLogCallbackFunc cb) {
|
|
- std::lock_guard lock(mutex);
|
|
|
|
|
|
+ std::lock_guard lock(callbackMutex);
|
|
callback = cb;
|
|
callback = cb;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -215,7 +215,7 @@ public:
|
|
#else
|
|
#else
|
|
std::string str = formatted;
|
|
std::string str = formatted;
|
|
#endif
|
|
#endif
|
|
- std::lock_guard lock(mutex);
|
|
|
|
|
|
+ std::lock_guard lock(callbackMutex);
|
|
if (callback)
|
|
if (callback)
|
|
callback(static_cast<rtcLogLevel>(record.getSeverity()), str.c_str());
|
|
callback(static_cast<rtcLogLevel>(record.getSeverity()), str.c_str());
|
|
else
|
|
else
|
|
@@ -224,6 +224,7 @@ public:
|
|
|
|
|
|
private:
|
|
private:
|
|
rtcLogCallbackFunc callback;
|
|
rtcLogCallbackFunc callback;
|
|
|
|
+ std::mutex callbackMutex;
|
|
};
|
|
};
|
|
|
|
|
|
} // namespace
|
|
} // namespace
|
|
@@ -231,6 +232,7 @@ private:
|
|
void rtcInitLogger(rtcLogLevel level, rtcLogCallbackFunc cb) {
|
|
void rtcInitLogger(rtcLogLevel level, rtcLogCallbackFunc cb) {
|
|
static std::optional<plog_appender> appender;
|
|
static std::optional<plog_appender> appender;
|
|
const auto severity = static_cast<plog::Severity>(level);
|
|
const auto severity = static_cast<plog::Severity>(level);
|
|
|
|
+ std::lock_guard lock(mutex);
|
|
if (appender) {
|
|
if (appender) {
|
|
appender->set_callback(cb);
|
|
appender->set_callback(cb);
|
|
InitLogger(severity, nullptr); // change the severity
|
|
InitLogger(severity, nullptr); // change the severity
|