aboutsummaryrefslogtreecommitdiffhomepage
path: root/td/telegram/Log.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'td/telegram/Log.cpp')
-rw-r--r--td/telegram/Log.cpp16
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