diff options
Diffstat (limited to 'td/telegram/Log.cpp')
| -rw-r--r-- | td/telegram/Log.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/td/telegram/Log.cpp b/td/telegram/Log.cpp index a6b6e6722..4c8a28b9d 100644 --- a/td/telegram/Log.cpp +++ b/td/telegram/Log.cpp @@ -17,6 +17,12 @@ namespace td { static FileLog file_log; static TsLog ts_log(&file_log); static int64 max_log_file_size = 10 << 20; +static Log::FatalErrorCallbackPtr fatal_error_callback; + +static void fatal_error_callback_wrapper(CSlice message) { + CHECK(fatal_error_callback != nullptr); + fatal_error_callback(message.c_str()); +} void Log::set_file_path(string file_path) { if (file_path.empty()) { @@ -37,4 +43,14 @@ void Log::set_verbosity_level(int new_verbosity_level) { SET_VERBOSITY_LEVEL(VERBOSITY_NAME(FATAL) + new_verbosity_level); } +void Log::set_fatal_error_callback(FatalErrorCallbackPtr callback) { + if (callback == nullptr) { + fatal_error_callback = nullptr; + set_log_fatal_error_callback(nullptr); + } else { + fatal_error_callback = callback; + set_log_fatal_error_callback(fatal_error_callback_wrapper); + } +} + } // namespace td |
