33 : _name(std::move(
name)), _log_level(log_level), _printers({std::move(printer)}), _decorators()
39 set_default_decorators();
43 : _name(std::move(
name)), _log_level(log_level), _printers(std::move(printers)), _decorators()
46 for (
const auto &p : _printers)
52 set_default_decorators();
57 std::vector<std::shared_ptr<Printer>> printers,
58 std::vector<std::unique_ptr<IDecorator>> decorators)
59 : _name(std::move(
name)), _log_level(log_level), _printers(std::move(printers)), _decorators(std::move(decorators))
62 for (
const auto &p : _printers)
68 for (
const auto &d : _decorators)
85 print_all(create_log_msg(msg,
log_level));
106 _printers.push_back(std::move(printer));
112 _decorators.push_back(std::move(decorator));
115 void Logger::set_default_decorators()
117 _decorators.emplace_back(std::make_unique<StringDecorator>(_name));
118 _decorators.emplace_back(std::make_unique<DateDecorator>());
119 _decorators.emplace_back(std::make_unique<LogLevelDecorator>());
122 bool Logger::is_loggable(
LogLevel log_level)
127 void Logger::decorate_log_msg(
LogMsg &msg)
129 for (
const auto &d : _decorators)
133 msg.
raw_ += std::string(
" ");
136 std::string Logger::create_log_msg(
const std::string &
str,
LogLevel log_level)
140 decorate_log_msg(log_msg);
141 std::ostringstream
ss;
142 ss << log_msg.raw_ <<
" " <<
str;
146 void Logger::print_all(
const std::string &msg)
148 for (
auto &p : _printers)