6#ifndef SPDLOG_HEADER_ONLY
16template<
typename ConsoleMutex>
18 : target_file_(target_file)
19 , mutex_(ConsoleMutex::mutex())
33template<
typename ConsoleMutex>
37 colors_[color_level] = to_string_(
color);
40template<
typename ConsoleMutex>
49 formatter_->format(msg, formatted);
55 print_ccode_(colors_[msg.
level]);
63 print_range_(formatted, 0, formatted.size());
68template<
typename ConsoleMutex>
75template<
typename ConsoleMutex>
82template<
typename ConsoleMutex>
86 formatter_ = std::move(sink_formatter);
89template<
typename ConsoleMutex>
92 return should_do_colors_;
95template<
typename ConsoleMutex>
101 should_do_colors_ =
true;
107 should_do_colors_ =
false;
110 should_do_colors_ =
false;
114template<
typename ConsoleMutex>
117 fwrite(color_code.data(),
sizeof(
char), color_code.size(), target_file_);
120template<
typename ConsoleMutex>
123 fwrite(formatted.data() + start,
sizeof(
char), end - start, target_file_);
126template<
typename ConsoleMutex>
133template<
typename ConsoleMutex>
139template<
typename ConsoleMutex>
const string_view_t green
void set_pattern(const std::string &pattern) final
static std::string to_string_(const string_view_t &sv)
const string_view_t red_bold
void set_color(level::level_enum color_level, string_view_t color)
const string_view_t bold_on_red
void set_formatter(std::unique_ptr< spdlog::formatter > sink_formatter) override
std::array< std::string, level::n_levels > colors_
void set_color_mode(color_mode mode)
const string_view_t white
const string_view_t yellow_bold
Bold colors.
ansicolor_sink(FILE *target_file, color_mode mode)
const string_view_t reset
void log(const details::log_msg &msg) override
void print_ccode_(const string_view_t &color_code)
void print_range_(const memory_buf_t &formatted, size_t start, size_t end)
ansicolor_stderr_sink(color_mode mode=color_mode::automatic)
ansicolor_stdout_sink(color_mode mode=color_mode::automatic)
SPDLOG_INLINE bool is_color_terminal() SPDLOG_NOEXCEPT
SPDLOG_INLINE bool in_terminal(FILE *file) SPDLOG_NOEXCEPT
fmt::basic_string_view< char > string_view_t
fmt::basic_memory_buffer< char, 250 > memory_buf_t