2018-12-31 20:04:05 +01:00
|
|
|
//
|
2021-01-01 13:57:46 +01:00
|
|
|
// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2021
|
2018-12-31 20:04:05 +01:00
|
|
|
//
|
|
|
|
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
|
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
|
|
//
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
/**
|
|
|
|
* \file
|
|
|
|
* C++ interface for managing the internal logging of TDLib.
|
|
|
|
* By default TDLib writes logs to stderr or an OS specific log and uses a verbosity level of 5.
|
|
|
|
*/
|
|
|
|
|
2018-01-09 10:40:56 +01:00
|
|
|
#include <cstdint>
|
2018-12-31 20:04:05 +01:00
|
|
|
#include <string>
|
|
|
|
|
|
|
|
namespace td {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Interface for managing the internal logging of TDLib.
|
|
|
|
* By default TDLib writes logs to stderr or an OS specific log and uses a verbosity level of 5.
|
2019-03-06 23:28:35 +01:00
|
|
|
* These functions are deprecated since TDLib 1.4.0 in favor of the td::td_api::setLogVerbosityLevel,
|
|
|
|
* td::td_api::setLogStream and other synchronous requests for managing the intrenal TDLib logging.
|
2018-12-31 20:04:05 +01:00
|
|
|
*/
|
|
|
|
class Log {
|
|
|
|
public:
|
|
|
|
/**
|
|
|
|
* Sets the path to the file to where the internal TDLib log will be written.
|
|
|
|
* By default TDLib writes logs to stderr or an OS specific log.
|
|
|
|
* Use this method to write the log to a file instead.
|
|
|
|
*
|
2019-03-06 23:28:35 +01:00
|
|
|
* \deprecated Use synchronous td::td_api::setLogStream request instead.
|
2018-01-09 10:40:56 +01:00
|
|
|
* \param[in] file_path Path to a file where the internal TDLib log will be written. Use an empty path to
|
|
|
|
* switch back to the default logging behaviour.
|
2018-01-28 17:38:59 +01:00
|
|
|
* \return True on success, or false otherwise, i.e. if the file can't be opened for writing.
|
2018-12-31 20:04:05 +01:00
|
|
|
*/
|
2018-01-28 17:38:59 +01:00
|
|
|
static bool set_file_path(std::string file_path);
|
2018-01-09 10:40:56 +01:00
|
|
|
|
|
|
|
/**
|
2020-01-06 19:44:09 +01:00
|
|
|
* Sets the maximum size of the file to where the internal TDLib log is written before the file will be auto-rotated.
|
2018-01-09 10:40:56 +01:00
|
|
|
* Unused if log is not written to a file. Defaults to 10 MB.
|
|
|
|
*
|
2019-03-06 23:28:35 +01:00
|
|
|
* \deprecated Use synchronous td::td_api::setLogStream request instead.
|
2020-01-06 19:44:09 +01:00
|
|
|
* \param[in] max_file_size The maximum size of the file to where the internal TDLib log is written before the file
|
2018-01-09 10:40:56 +01:00
|
|
|
* will be auto-rotated. Should be positive.
|
|
|
|
*/
|
|
|
|
static void set_max_file_size(std::int64_t max_file_size);
|
2018-12-31 20:04:05 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Sets the verbosity level of the internal logging of TDLib.
|
|
|
|
* By default the TDLib uses a verbosity level of 5 for logging.
|
|
|
|
*
|
2019-03-06 23:28:35 +01:00
|
|
|
* \deprecated Use synchronous td::td_api::setLogVerbosityLevel request instead.
|
2018-12-31 20:04:05 +01:00
|
|
|
* \param[in] new_verbosity_level New value of the verbosity level for logging.
|
|
|
|
* Value 0 corresponds to fatal errors,
|
|
|
|
* value 1 corresponds to errors,
|
|
|
|
* value 2 corresponds to warnings and debug warnings,
|
|
|
|
* value 3 corresponds to informational,
|
|
|
|
* value 4 corresponds to debug,
|
|
|
|
* value 5 corresponds to verbose debug,
|
|
|
|
* value greater than 5 and up to 1024 can be used to enable even more logging.
|
|
|
|
*/
|
|
|
|
static void set_verbosity_level(int new_verbosity_level);
|
2018-01-24 16:45:57 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* A type of callback function that will be called when a fatal error happens.
|
|
|
|
*
|
|
|
|
* \param error_message Null-terminated string with a description of a happened fatal error.
|
|
|
|
*/
|
|
|
|
using FatalErrorCallbackPtr = void (*)(const char *error_message);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Sets the callback that will be called when a fatal error happens.
|
|
|
|
* None of the TDLib methods can be called from the callback.
|
|
|
|
* The TDLib will crash as soon as callback returns.
|
|
|
|
* By default the callback is not set.
|
|
|
|
*
|
|
|
|
* \param[in] callback Callback that will be called when a fatal error happens.
|
|
|
|
* Pass nullptr to remove the callback.
|
|
|
|
*/
|
|
|
|
static void set_fatal_error_callback(FatalErrorCallbackPtr callback);
|
2020-10-12 19:50:17 +02:00
|
|
|
|
|
|
|
static void set_disable_death_handler(bool disabled);
|
2018-12-31 20:04:05 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace td
|