6#ifndef SPDLOG_HEADER_ONLY
18 template <
typename ConsoleMutex>
33 template <
typename ConsoleMutex>
36 std::lock_guard<mutex_t> lock(mutex_);
37 colors_[
static_cast<size_t>(color_level)] = to_string_(
color);
40 template <
typename ConsoleMutex>
45 std::lock_guard<mutex_t> lock(mutex_);
49 formatter_->format(msg, formatted);
55 print_ccode_(colors_[
static_cast<size_t>(msg.
level)]);
63 print_range_(formatted, 0, formatted.size());
68 template <
typename ConsoleMutex>
71 std::lock_guard<mutex_t> lock(mutex_);
75 template <
typename ConsoleMutex>
78 std::lock_guard<mutex_t> lock(mutex_);
82 template <
typename ConsoleMutex>
85 std::lock_guard<mutex_t> lock(mutex_);
86 formatter_ = std::move(sink_formatter);
89 template <
typename ConsoleMutex>
92 return should_do_colors_;
95 template <
typename ConsoleMutex>
101 should_do_colors_ =
true;
107 should_do_colors_ =
false;
110 should_do_colors_ =
false;
114 template <
typename ConsoleMutex>
117 fwrite(color_code.data(),
sizeof(
char), color_code.size(), target_file_);
120 template <
typename ConsoleMutex>
123 fwrite(formatted.data() + start,
sizeof(
char), end - start, target_file_);
126 template <
typename ConsoleMutex>
129 return std::string(sv.data(), sv.size());
133 template <
typename ConsoleMutex>
140 template <
typename ConsoleMutex>
Definition ansicolor_sink.h:28
const string_view_t green
Definition ansicolor_sink.h:62
void set_pattern(const std::string &pattern) final
Definition ansicolor_sink-inl.h:76
static std::string to_string_(const string_view_t &sv)
Definition ansicolor_sink-inl.h:127
const string_view_t red_bold
Definition ansicolor_sink.h:81
void set_color(level::level_enum color_level, string_view_t color)
Definition ansicolor_sink-inl.h:34
const string_view_t bold_on_red
Definition ansicolor_sink.h:82
void set_formatter(std::unique_ptr< spdlog::formatter > sink_formatter) override
Definition ansicolor_sink-inl.h:83
bool should_color()
Definition ansicolor_sink-inl.h:90
std::array< std::string, level::n_levels > colors_
Definition ansicolor_sink.h:89
const string_view_t cyan
Definition ansicolor_sink.h:66
void set_color_mode(color_mode mode)
Definition ansicolor_sink-inl.h:96
const string_view_t white
Definition ansicolor_sink.h:67
const string_view_t yellow_bold
Bold colors.
Definition ansicolor_sink.h:80
ansicolor_sink(FILE *target_file, color_mode mode)
Definition ansicolor_sink-inl.h:19
void flush() override
Definition ansicolor_sink-inl.h:69
const string_view_t reset
Definition ansicolor_sink.h:50
void log(const details::log_msg &msg) override
Definition ansicolor_sink-inl.h:41
void print_ccode_(const string_view_t &color_code)
Definition ansicolor_sink-inl.h:115
void print_range_(const memory_buf_t &formatted, size_t start, size_t end)
Definition ansicolor_sink-inl.h:121
ansicolor_stderr_sink(color_mode mode=color_mode::automatic)
Definition ansicolor_sink-inl.h:141
ansicolor_stdout_sink(color_mode mode=color_mode::automatic)
Definition ansicolor_sink-inl.h:134
#define SPDLOG_INLINE
Definition common.h:47
SPDLOG_INLINE bool is_color_terminal() SPDLOG_NOEXCEPT
Definition os-inl.h:417
SPDLOG_INLINE bool in_terminal(FILE *file) SPDLOG_NOEXCEPT
Definition os-inl.h:448
level_enum
Definition common.h:233
@ critical
Definition common.h:239
@ err
Definition common.h:238
@ warn
Definition common.h:237
@ info
Definition common.h:236
@ off
Definition common.h:240
@ trace
Definition common.h:234
@ debug
Definition common.h:235
fmt::basic_string_view< char > string_view_t
Definition common.h:172
color_mode
Definition common.h:278
fmt::basic_memory_buffer< char, 250 > memory_buf_t
Definition common.h:173
size_t color_range_end
Definition log_msg.h:29
level::level_enum level
Definition log_msg.h:23
size_t color_range_start
Definition log_msg.h:28
annotation details
Definition tag_strings.h:125