TARAXA
Loading...
Searching...
No Matches
logger_config.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <boost/log/sinks/text_ostream_backend.hpp>
4#include <boost/log/sources/record_ostream.hpp>
5#include <boost/log/utility/setup/file.hpp>
6#include <filesystem>
7#include <string>
8
9#include "common/types.hpp"
10
11namespace fs = std::filesystem;
12
13namespace taraxa::logger {
14
15// Logger verbosity
16// this enum must match enum in aleth logs to correctly support aleth's library
18 Silent = -1,
19 Error = 0,
21 Info = 2,
22 Debug = 3,
23 Trace = 4,
24};
25
32Verbosity stringToVerbosity(std::string _verbosity);
33
34class Config {
35 public:
36 template <class T>
37 using log_sink = boost::log::sinks::synchronous_sink<T>;
38
39 struct OutputConfig {
40 OutputConfig() = default;
41
42 std::string type = "console";
43 std::string target;
44 std::string file_name;
45 uint64_t rotation_size = 0;
47 std::string format = "%ThreadID% %ShortNodeId% %Channel% [%TimeStamp%] %SeverityStr%: %Message%";
48 uint64_t max_size = 0;
49 };
50 Config() = default;
51 Config(fs::path log_path);
52 ~Config();
53
54 Config(const Config& other);
55 Config& operator=(const Config& other);
56 Config(Config&& other) noexcept;
57 Config& operator=(Config&& other) noexcept;
58
62 void InitLogging(addr_t const& node);
63
67 void DeinitLogging();
68
69 std::string name = "default";
71 std::map<std::string, uint16_t> channels;
72 std::vector<OutputConfig> outputs;
73 std::vector<boost::shared_ptr<log_sink<boost::log::sinks::text_ostream_backend>>> console_sinks;
74 std::vector<boost::shared_ptr<log_sink<boost::log::sinks::text_file_backend>>> file_sinks;
75
76 private:
78};
79
80} // namespace taraxa::logger
Definition FixedHash.h:35
Definition logger_config.hpp:34
boost::log::sinks::synchronous_sink< T > log_sink
Definition logger_config.hpp:37
~Config()
Definition logger_config.cpp:98
std::vector< OutputConfig > outputs
Definition logger_config.hpp:72
Verbosity verbosity
Definition logger_config.hpp:70
void DeinitLogging()
Deinit logging - removes created boost sinks.
Definition logger_config.cpp:163
std::vector< boost::shared_ptr< log_sink< boost::log::sinks::text_ostream_backend > > > console_sinks
Definition logger_config.hpp:73
void InitLogging(addr_t const &node)
Init logging - creates boost sinks according to the Config.
Definition logger_config.cpp:104
std::map< std::string, uint16_t > channels
Definition logger_config.hpp:71
bool logging_initialized_
Definition logger_config.hpp:77
std::string name
Definition logger_config.hpp:69
Config & operator=(const Config &other)
Definition logger_config.cpp:54
std::vector< boost::shared_ptr< log_sink< boost::log::sinks::text_file_backend > > > file_sinks
Definition logger_config.hpp:74
Definition logger.hpp:8
Verbosity stringToVerbosity(std::string _verbosity)
Transforms string verbosity to Verbosity enum.
Definition logger_config.cpp:19
Verbosity
Definition logger_config.hpp:17
@ Info
Definition logger_config.hpp:21
@ Silent
Definition logger_config.hpp:18
@ Debug
Definition logger_config.hpp:22
@ Trace
Definition logger_config.hpp:23
@ Warning
Definition logger_config.hpp:20
@ Error
Definition logger_config.hpp:19
Definition logger_config.hpp:39
std::string type
Definition logger_config.hpp:42
uint64_t rotation_size
Definition logger_config.hpp:45
std::string time_based_rotation
Definition logger_config.hpp:46
uint64_t max_size
Definition logger_config.hpp:48
std::string file_name
Definition logger_config.hpp:44
std::string format
Definition logger_config.hpp:47
std::string target
Definition logger_config.hpp:43