diff --git a/td/telegram/Log.cpp b/td/telegram/Log.cpp index 230aab13..b712b821 100644 --- a/td/telegram/Log.cpp +++ b/td/telegram/Log.cpp @@ -11,8 +11,11 @@ #include "td/utils/logging.h" #include "td/utils/Slice.h" +#include + namespace td { +static std::mutex log_mutex; static FileLog file_log; static TsLog ts_log(&file_log); static int64 max_log_file_size = 10 << 20; @@ -24,6 +27,7 @@ static void fatal_error_callback_wrapper(CSlice message) { } bool Log::set_file_path(string file_path) { + std::lock_guard lock(log_mutex); if (file_path.empty()) { log_interface = default_log_interface; return true; @@ -38,17 +42,20 @@ bool Log::set_file_path(string file_path) { } void Log::set_max_file_size(int64 max_file_size) { + std::lock_guard lock(log_mutex); max_log_file_size = max(max_file_size, static_cast(0)); file_log.set_rotate_threshold(max_log_file_size); } void Log::set_verbosity_level(int new_verbosity_level) { + std::lock_guard lock(log_mutex); if (0 <= new_verbosity_level && new_verbosity_level <= 1024) { SET_VERBOSITY_LEVEL(VERBOSITY_NAME(FATAL) + new_verbosity_level); } } void Log::set_fatal_error_callback(FatalErrorCallbackPtr callback) { + std::lock_guard lock(log_mutex); if (callback == nullptr) { fatal_error_callback = nullptr; set_log_fatal_error_callback(nullptr);