19 explicit Logger(std::string_view name) :
23 Logger(std::string_view name, std::shared_ptr<LogSink> sink) :
25 log_sinks_{std::move(sink)}
33 template<
class... Args>
40 auto it = std::ranges::find_if(log_sinks_, [
log_level](
const auto& sink) {
return sink->should_log(
log_level); });
41 if (it == log_sinks_.end()) {
48 const auto message = std::format(std::move(fmt), std::forward<Args>(args)...);
54 for (; it != log_sinks_.end(); ++it) {
55 if ((*it)->should_log(view.level())) {
56 (*it)->sink_message(view);
61 const std::vector<std::shared_ptr<LogSink>>&
sinks()
const {
return log_sinks_; }
62 std::vector<std::shared_ptr<LogSink>>&
sinks() {
return log_sinks_; }
69 std::vector<std::shared_ptr<LogSink>> log_sinks_;
Definition c_string_view.h:13
Definition log_message_view.h:12
const std::vector< std::shared_ptr< LogSink > > & sinks() const
Definition logger.h:61
Logger(std::string_view name)
Definition logger.h:19
void log_message(LogLevel log_level, std::format_string< Args... > fmt, Args &&... args)
Definition logger.h:34
std::vector< std::shared_ptr< LogSink > > & sinks()
Definition logger.h:62
void log_message(LogLevel log_level, std::string_view message)
Definition logger.h:28
LogLevel level() const
Definition logger.h:64
Logger(std::string_view name, std::shared_ptr< LogSink > sink)
Definition logger.h:23
void set_level(LogLevel level_)
Definition logger.h:65
Definition string_name.h:14
Definition custom_decoration_generator.h:5
LogLevel log_level()
Definition log.h:20
LogLevel
Definition log_level.h:11