summaryrefslogtreecommitdiff
path: root/matching/include/spdlog/sinks
diff options
context:
space:
mode:
Diffstat (limited to 'matching/include/spdlog/sinks')
-rw-r--r--matching/include/spdlog/sinks/android_sink.h121
-rw-r--r--matching/include/spdlog/sinks/ansicolor_sink.h161
-rw-r--r--matching/include/spdlog/sinks/base_sink.h69
-rw-r--r--matching/include/spdlog/sinks/basic_file_sink.h75
-rw-r--r--matching/include/spdlog/sinks/daily_file_sink.h141
-rw-r--r--matching/include/spdlog/sinks/dist_sink.h94
-rw-r--r--matching/include/spdlog/sinks/msvc_sink.h54
-rw-r--r--matching/include/spdlog/sinks/null_sink.h49
-rw-r--r--matching/include/spdlog/sinks/ostream_sink.h57
-rw-r--r--matching/include/spdlog/sinks/rotating_file_sink.h164
-rw-r--r--matching/include/spdlog/sinks/sink.h59
-rw-r--r--matching/include/spdlog/sinks/stdout_color_sinks.h56
-rw-r--r--matching/include/spdlog/sinks/stdout_sinks.h102
-rw-r--r--matching/include/spdlog/sinks/syslog_sink.h94
-rw-r--r--matching/include/spdlog/sinks/wincolor_sink.h143
15 files changed, 0 insertions, 1439 deletions
diff --git a/matching/include/spdlog/sinks/android_sink.h b/matching/include/spdlog/sinks/android_sink.h
deleted file mode 100644
index ae7f773..0000000
--- a/matching/include/spdlog/sinks/android_sink.h
+++ /dev/null
@@ -1,121 +0,0 @@
-//
-// Copyright(c) 2015 Gabi Melman.
-// Distributed under the MIT License (http://opensource.org/licenses/MIT)
-//
-
-#pragma once
-
-#ifndef SPDLOG_H
-#include "spdlog/spdlog.h"
-#endif
-
-#include "spdlog/details/fmt_helper.h"
-#include "spdlog/details/null_mutex.h"
-#include "spdlog/details/os.h"
-#include "spdlog/sinks/base_sink.h"
-
-#include <android/log.h>
-#include <chrono>
-#include <mutex>
-#include <string>
-#include <thread>
-
-#if !defined(SPDLOG_ANDROID_RETRIES)
-#define SPDLOG_ANDROID_RETRIES 2
-#endif
-
-namespace spdlog {
-namespace sinks {
-
-/*
- * Android sink (logging using __android_log_write)
- */
-template<typename Mutex>
-class android_sink final : public base_sink<Mutex>
-{
-public:
- explicit android_sink(std::string tag = "spdlog", bool use_raw_msg = false)
- : tag_(std::move(tag))
- , use_raw_msg_(use_raw_msg)
- {
- }
-
-protected:
- void sink_it_(const details::log_msg &msg) override
- {
- const android_LogPriority priority = convert_to_android_(msg.level);
- fmt::memory_buffer formatted;
- if (use_raw_msg_)
- {
- details::fmt_helper::append_string_view(msg.payload, formatted);
- }
- else
- {
- sink::formatter_->format(msg, formatted);
- }
- formatted.push_back('\0');
- const char *msg_output = formatted.data();
-
- // See system/core/liblog/logger_write.c for explanation of return value
- int ret = __android_log_write(priority, tag_.c_str(), msg_output);
- int retry_count = 0;
- while ((ret == -11 /*EAGAIN*/) && (retry_count < SPDLOG_ANDROID_RETRIES))
- {
- details::os::sleep_for_millis(5);
- ret = __android_log_write(priority, tag_.c_str(), msg_output);
- retry_count++;
- }
-
- if (ret < 0)
- {
- throw spdlog_ex("__android_log_write() failed", ret);
- }
- }
-
- void flush_() override {}
-
-private:
- static android_LogPriority convert_to_android_(spdlog::level::level_enum level)
- {
- switch (level)
- {
- case spdlog::level::trace:
- return ANDROID_LOG_VERBOSE;
- case spdlog::level::debug:
- return ANDROID_LOG_DEBUG;
- case spdlog::level::info:
- return ANDROID_LOG_INFO;
- case spdlog::level::warn:
- return ANDROID_LOG_WARN;
- case spdlog::level::err:
- return ANDROID_LOG_ERROR;
- case spdlog::level::critical:
- return ANDROID_LOG_FATAL;
- default:
- return ANDROID_LOG_DEFAULT;
- }
- }
-
- std::string tag_;
- bool use_raw_msg_;
-};
-
-using android_sink_mt = android_sink<std::mutex>;
-using android_sink_st = android_sink<details::null_mutex>;
-} // namespace sinks
-
-// Create and register android syslog logger
-
-template<typename Factory = default_factory>
-inline std::shared_ptr<logger> android_logger_mt(const std::string &logger_name, const std::string &tag = "spdlog")
-{
- return Factory::template create<sinks::android_sink_mt>(logger_name, tag);
-}
-
-template<typename Factory = default_factory>
-inline std::shared_ptr<logger> android_logger_st(const std::string &logger_name, const std::string &tag = "spdlog")
-{
- return Factory::template create<sinks::android_sink_st>(logger_name, tag);
-}
-
-} // namespace spdlog
diff --git a/matching/include/spdlog/sinks/ansicolor_sink.h b/matching/include/spdlog/sinks/ansicolor_sink.h
deleted file mode 100644
index 7c5e353..0000000
--- a/matching/include/spdlog/sinks/ansicolor_sink.h
+++ /dev/null
@@ -1,161 +0,0 @@
-//
-// Copyright(c) 2017 spdlog authors.
-// Distributed under the MIT License (http://opensource.org/licenses/MIT)
-//
-
-#pragma once
-
-#ifndef SPDLOG_H
-#include "spdlog/spdlog.h"
-#endif
-
-#include "spdlog/details/console_globals.h"
-#include "spdlog/details/null_mutex.h"
-#include "spdlog/details/os.h"
-#include "spdlog/sinks/sink.h"
-
-#include <memory>
-#include <mutex>
-#include <string>
-#include <unordered_map>
-
-namespace spdlog {
-namespace sinks {
-
-/**
- * This sink prefixes the output with an ANSI escape sequence color code
- * depending on the severity
- * of the message.
- * If no color terminal detected, omit the escape codes.
- */
-template<typename TargetStream, class ConsoleMutex>
-class ansicolor_sink final : public sink
-{
-public:
- using mutex_t = typename ConsoleMutex::mutex_t;
- ansicolor_sink()
- : target_file_(TargetStream::stream())
- , mutex_(ConsoleMutex::mutex())
-
- {
- should_do_colors_ = details::os::in_terminal(target_file_) && details::os::is_color_terminal();
- colors_[level::trace] = white;
- colors_[level::debug] = cyan;
- colors_[level::info] = green;
- colors_[level::warn] = yellow + bold;
- colors_[level::err] = red + bold;
- colors_[level::critical] = bold + on_red;
- colors_[level::off] = reset;
- }
-
- ~ansicolor_sink() override = default;
-
- ansicolor_sink(const ansicolor_sink &other) = delete;
- ansicolor_sink &operator=(const ansicolor_sink &other) = delete;
-
- void set_color(level::level_enum color_level, const std::string &color)
- {
- std::lock_guard<mutex_t> lock(mutex_);
- colors_[color_level] = color;
- }
-
- /// Formatting codes
- const std::string reset = "\033[m";
- const std::string bold = "\033[1m";
- const std::string dark = "\033[2m";
- const std::string underline = "\033[4m";
- const std::string blink = "\033[5m";
- const std::string reverse = "\033[7m";
- const std::string concealed = "\033[8m";
- const std::string clear_line = "\033[K";
-
- // Foreground colors
- const std::string black = "\033[30m";
- const std::string red = "\033[31m";
- const std::string green = "\033[32m";
- const std::string yellow = "\033[33m";
- const std::string blue = "\033[34m";
- const std::string magenta = "\033[35m";
- const std::string cyan = "\033[36m";
- const std::string white = "\033[37m";
-
- /// Background colors
- const std::string on_black = "\033[40m";
- const std::string on_red = "\033[41m";
- const std::string on_green = "\033[42m";
- const std::string on_yellow = "\033[43m";
- const std::string on_blue = "\033[44m";
- const std::string on_magenta = "\033[45m";
- const std::string on_cyan = "\033[46m";
- const std::string on_white = "\033[47m";
-
- void log(const details::log_msg &msg) override
- {
- // Wrap the originally formatted message in color codes.
- // If color is not supported in the terminal, log as is instead.
- std::lock_guard<mutex_t> lock(mutex_);
-
- fmt::memory_buffer formatted;
- formatter_->format(msg, formatted);
- if (should_do_colors_ && msg.color_range_end > msg.color_range_start)
- {
- // before color range
- print_range_(formatted, 0, msg.color_range_start);
- // in color range
- print_ccode_(colors_[msg.level]);
- print_range_(formatted, msg.color_range_start, msg.color_range_end);
- print_ccode_(reset);
- // after color range
- print_range_(formatted, msg.color_range_end, formatted.size());
- }
- else // no color
- {
- print_range_(formatted, 0, formatted.size());
- }
- fflush(target_file_);
- }
-
- void flush() override
- {
- std::lock_guard<mutex_t> lock(mutex_);
- fflush(target_file_);
- }
-
- void set_pattern(const std::string &pattern) final
- {
- std::lock_guard<mutex_t> lock(mutex_);
- formatter_ = std::unique_ptr<spdlog::formatter>(new pattern_formatter(pattern));
- }
-
- void set_formatter(std::unique_ptr<spdlog::formatter> sink_formatter) override
- {
- std::lock_guard<mutex_t> lock(mutex_);
- formatter_ = std::move(sink_formatter);
- }
-
-private:
- void print_ccode_(const std::string &color_code)
- {
- fwrite(color_code.data(), sizeof(char), color_code.size(), target_file_);
- }
- void print_range_(const fmt::memory_buffer &formatted, size_t start, size_t end)
- {
- fwrite(formatted.data() + start, sizeof(char), end - start, target_file_);
- }
-
- FILE *target_file_;
- mutex_t &mutex_;
-
- bool should_do_colors_;
- std::unordered_map<level::level_enum, std::string, level::level_hasher> colors_;
-};
-
-using ansicolor_stdout_sink_mt = ansicolor_sink<details::console_stdout, details::console_mutex>;
-using ansicolor_stdout_sink_st = ansicolor_sink<details::console_stdout, details::console_nullmutex>;
-
-using ansicolor_stderr_sink_mt = ansicolor_sink<details::console_stderr, details::console_mutex>;
-using ansicolor_stderr_sink_st = ansicolor_sink<details::console_stderr, details::console_nullmutex>;
-
-} // namespace sinks
-
-} // namespace spdlog
diff --git a/matching/include/spdlog/sinks/base_sink.h b/matching/include/spdlog/sinks/base_sink.h
deleted file mode 100644
index 2259518..0000000
--- a/matching/include/spdlog/sinks/base_sink.h
+++ /dev/null
@@ -1,69 +0,0 @@
-//
-// Copyright(c) 2015 Gabi Melman.
-// Distributed under the MIT License (http://opensource.org/licenses/MIT)
-//
-
-#pragma once
-//
-// base sink templated over a mutex (either dummy or real)
-// concrete implementation should override the sink_it_() and flush_() methods.
-// locking is taken care of in this class - no locking needed by the
-// implementers..
-//
-
-#include "spdlog/common.h"
-#include "spdlog/details/log_msg.h"
-#include "spdlog/formatter.h"
-#include "spdlog/sinks/sink.h"
-
-namespace spdlog {
-namespace sinks {
-template<typename Mutex>
-class base_sink : public sink
-{
-public:
- base_sink() = default;
- base_sink(const base_sink &) = delete;
- base_sink &operator=(const base_sink &) = delete;
-
- void log(const details::log_msg &msg) final
- {
- std::lock_guard<Mutex> lock(mutex_);
- sink_it_(msg);
- }
-
- void flush() final
- {
- std::lock_guard<Mutex> lock(mutex_);
- flush_();
- }
-
- void set_pattern(const std::string &pattern) final
- {
- std::lock_guard<Mutex> lock(mutex_);
- set_pattern_(pattern);
- }
-
- void set_formatter(std::unique_ptr<spdlog::formatter> sink_formatter) final
- {
- std::lock_guard<Mutex> lock(mutex_);
- set_formatter_(std::move(sink_formatter));
- }
-
-protected:
- virtual void sink_it_(const details::log_msg &msg) = 0;
- virtual void flush_() = 0;
-
- virtual void set_pattern_(const std::string &pattern)
- {
- set_formatter_(details::make_unique<spdlog::pattern_formatter>(pattern));
- }
-
- virtual void set_formatter_(std::unique_ptr<spdlog::formatter> sink_formatter)
- {
- formatter_ = std::move(sink_formatter);
- }
- Mutex mutex_;
-};
-} // namespace sinks
-} // namespace spdlog
diff --git a/matching/include/spdlog/sinks/basic_file_sink.h b/matching/include/spdlog/sinks/basic_file_sink.h
deleted file mode 100644
index facc720..0000000
--- a/matching/include/spdlog/sinks/basic_file_sink.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright(c) 2015-2018 Gabi Melman.
-// Distributed under the MIT License (http://opensource.org/licenses/MIT)
-//
-
-#pragma once
-
-#ifndef SPDLOG_H
-#include "spdlog/spdlog.h"
-#endif
-
-#include "spdlog/details/file_helper.h"
-#include "spdlog/details/null_mutex.h"
-#include "spdlog/sinks/base_sink.h"
-
-#include <mutex>
-#include <string>
-
-namespace spdlog {
-namespace sinks {
-/*
- * Trivial file sink with single file as target
- */
-template<typename Mutex>
-class basic_file_sink final : public base_sink<Mutex>
-{
-public:
- explicit basic_file_sink(const filename_t &filename, bool truncate = false)
- {
- file_helper_.open(filename, truncate);
- }
-
- const filename_t &filename() const
- {
- return file_helper_.filename();
- }
-
-protected:
- void sink_it_(const details::log_msg &msg) override
- {
- fmt::memory_buffer formatted;
- sink::formatter_->format(msg, formatted);
- file_helper_.write(formatted);
- }
-
- void flush_() override
- {
- file_helper_.flush();
- }
-
-private:
- details::file_helper file_helper_;
-};
-
-using basic_file_sink_mt = basic_file_sink<std::mutex>;
-using basic_file_sink_st = basic_file_sink<details::null_mutex>;
-
-} // namespace sinks
-
-//
-// factory functions
-//
-template<typename Factory = default_factory>
-inline std::shared_ptr<logger> basic_logger_mt(const std::string &logger_name, const filename_t &filename, bool truncate = false)
-{
- return Factory::template create<sinks::basic_file_sink_mt>(logger_name, filename, truncate);
-}
-
-template<typename Factory = default_factory>
-inline std::shared_ptr<logger> basic_logger_st(const std::string &logger_name, const filename_t &filename, bool truncate = false)
-{
- return Factory::template create<sinks::basic_file_sink_st>(logger_name, filename, truncate);
-}
-
-} // namespace spdlog
diff --git a/matching/include/spdlog/sinks/daily_file_sink.h b/matching/include/spdlog/sinks/daily_file_sink.h
deleted file mode 100644
index 08392c1..0000000
--- a/matching/include/spdlog/sinks/daily_file_sink.h
+++ /dev/null
@@ -1,141 +0,0 @@
-//
-// Copyright(c) 2015 Gabi Melman.
-// Distributed under the MIT License (http://opensource.org/licenses/MIT)
-//
-
-#pragma once
-
-#ifndef SPDLOG_H
-#include "spdlog/spdlog.h"
-#endif
-
-#include "spdlog/details/file_helper.h"
-#include "spdlog/details/null_mutex.h"
-#include "spdlog/fmt/fmt.h"
-#include "spdlog/sinks/base_sink.h"
-
-#include <chrono>
-#include <cstdio>
-#include <ctime>
-#include <mutex>
-#include <string>
-
-namespace spdlog {
-namespace sinks {
-
-/*
- * Generator of daily log file names in format basename.YYYY-MM-DD.ext
- */
-struct daily_filename_calculator
-{
- // Create filename for the form basename.YYYY-MM-DD
- static filename_t calc_filename(const filename_t &filename, const tm &now_tm)
- {
- filename_t basename, ext;
- std::tie(basename, ext) = details::file_helper::split_by_extension(filename);
- std::conditional<std::is_same<filename_t::value_type, char>::value, fmt::memory_buffer, fmt::wmemory_buffer>::type w;
- fmt::format_to(
- w, SPDLOG_FILENAME_T("{}_{:04d}-{:02d}-{:02d}{}"), basename, now_tm.tm_year + 1900, now_tm.tm_mon + 1, now_tm.tm_mday, ext);
- return fmt::to_string(w);
- }
-};
-
-/*
- * Rotating file sink based on date. rotates at midnight
- */
-template<typename Mutex, typename FileNameCalc = daily_filename_calculator>
-class daily_file_sink final : public base_sink<Mutex>
-{
-public:
- // create daily file sink which rotates on given time
- daily_file_sink(filename_t base_filename, int rotation_hour, int rotation_minute, bool truncate = false)
- : base_filename_(std::move(base_filename))
- , rotation_h_(rotation_hour)
- , rotation_m_(rotation_minute)
- , truncate_(truncate)
- {
- if (rotation_hour < 0 || rotation_hour > 23 || rotation_minute < 0 || rotation_minute > 59)
- {
- throw spdlog_ex("daily_file_sink: Invalid rotation time in ctor");
- }
- auto now = log_clock::now();
- file_helper_.open(FileNameCalc::calc_filename(base_filename_, now_tm(now)), truncate_);
- rotation_tp_ = next_rotation_tp_();
- }
-
- const filename_t &filename() const
- {
- return file_helper_.filename();
- }
-
-protected:
- void sink_it_(const details::log_msg &msg) override
- {
-
- if (msg.time >= rotation_tp_)
- {
- file_helper_.open(FileNameCalc::calc_filename(base_filename_, now_tm(msg.time)), truncate_);
- rotation_tp_ = next_rotation_tp_();
- }
- fmt::memory_buffer formatted;
- sink::formatter_->format(msg, formatted);
- file_helper_.write(formatted);
- }
-
- void flush_() override
- {
- file_helper_.flush();
- }
-
-private:
- tm now_tm(log_clock::time_point tp)
- {
- time_t tnow = log_clock::to_time_t(tp);
- return spdlog::details::os::localtime(tnow);
- }
-
- log_clock::time_point next_rotation_tp_()
- {
- auto now = log_clock::now();
- tm date = now_tm(now);
- date.tm_hour = rotation_h_;
- date.tm_min = rotation_m_;
- date.tm_sec = 0;
- auto rotation_time = log_clock::from_time_t(std::mktime(&date));
- if (rotation_time > now)
- {
- return rotation_time;
- }
- return {rotation_time + std::chrono::hours(24)};
- }
-
- filename_t base_filename_;
- int rotation_h_;
- int rotation_m_;
- log_clock::time_point rotation_tp_;
- details::file_helper file_helper_;
- bool truncate_;
-};
-
-using daily_file_sink_mt = daily_file_sink<std::mutex>;
-using daily_file_sink_st = daily_file_sink<details::null_mutex>;
-
-} // namespace sinks
-
-//
-// factory functions
-//
-template<typename Factory = default_factory>
-inline std::shared_ptr<logger> daily_logger_mt(
- const std::string &logger_name, const filename_t &filename, int hour = 0, int minute = 0, bool truncate = false)
-{
- return Factory::template create<sinks::daily_file_sink_mt>(logger_name, filename, hour, minute, truncate);
-}
-
-template<typename Factory = default_factory>
-inline std::shared_ptr<logger> daily_logger_st(
- const std::string &logger_name, const filename_t &filename, int hour = 0, int minute = 0, bool truncate = false)
-{
- return Factory::template create<sinks::daily_file_sink_st>(logger_name, filename, hour, minute, truncate);
-}
-} // namespace spdlog
diff --git a/matching/include/spdlog/sinks/dist_sink.h b/matching/include/spdlog/sinks/dist_sink.h
deleted file mode 100644
index 44de391..0000000
--- a/matching/include/spdlog/sinks/dist_sink.h
+++ /dev/null
@@ -1,94 +0,0 @@
-//
-// Copyright (c) 2015 David Schury, Gabi Melman
-// Distributed under the MIT License (http://opensource.org/licenses/MIT)
-//
-
-#pragma once
-
-#ifndef SPDLOG_H
-#include "spdlog/spdlog.h"
-#endif
-
-#include "base_sink.h"
-#include "spdlog/details/log_msg.h"
-#include "spdlog/details/null_mutex.h"
-
-#include <algorithm>
-#include <memory>
-#include <mutex>
-#include <vector>
-
-// Distribution sink (mux). Stores a vector of sinks which get called when log
-// is called
-
-namespace spdlog {
-namespace sinks {
-
-template<typename Mutex>
-class dist_sink : public base_sink<Mutex>
-{
-public:
- dist_sink() = default;
- dist_sink(const dist_sink &) = delete;
- dist_sink &operator=(const dist_sink &) = delete;
-
- void add_sink(std::shared_ptr<sink> sink)
- {
- std::lock_guard<Mutex> lock(base_sink<Mutex>::mutex_);
- sinks_.push_back(sink);
- }
-
- void remove_sink(std::shared_ptr<sink> sink)
- {
- std::lock_guard<Mutex> lock(base_sink<Mutex>::mutex_);
- sinks_.erase(std::remove(sinks_.begin(), sinks_.end(), sink), sinks_.end());
- }
-
- void set_sinks(std::vector<std::shared_ptr<sink>> sinks)
- {
- std::lock_guard<Mutex> lock(base_sink<Mutex>::mutex_);
- sinks_ = std::move(sinks);
- }
-
-protected:
- void sink_it_(const details::log_msg &msg) override
- {
-
- for (auto &sink : sinks_)
- {
- if (sink->should_log(msg.level))
- {
- sink->log(msg);
- }
- }
- }
-
- void flush_() override
- {
- for (auto &sink : sinks_)
- {
- sink->flush();
- }
- }
-
- void set_pattern_(const std::string &pattern) override
- {
- set_formatter_(details::make_unique<spdlog::pattern_formatter>(pattern));
- }
-
- void set_formatter_(std::unique_ptr<spdlog::formatter> sink_formatter) override
- {
- base_sink<Mutex>::formatter_ = std::move(sink_formatter);
- for (auto &sink : sinks_)
- {
- sink->set_formatter(base_sink<Mutex>::formatter_->clone());
- }
- }
- std::vector<std::shared_ptr<sink>> sinks_;
-};
-
-using dist_sink_mt = dist_sink<std::mutex>;
-using dist_sink_st = dist_sink<details::null_mutex>;
-
-} // namespace sinks
-} // namespace spdlog
diff --git a/matching/include/spdlog/sinks/msvc_sink.h b/matching/include/spdlog/sinks/msvc_sink.h
deleted file mode 100644
index f06c16c..0000000
--- a/matching/include/spdlog/sinks/msvc_sink.h
+++ /dev/null
@@ -1,54 +0,0 @@
-//
-// Copyright(c) 2016 Alexander Dalshov.
-// Distributed under the MIT License (http://opensource.org/licenses/MIT)
-//
-
-#pragma once
-
-#ifndef SPDLOG_H
-#include "spdlog/spdlog.h"
-#endif
-
-#if defined(_WIN32)
-
-#include "spdlog/details/null_mutex.h"
-#include "spdlog/sinks/base_sink.h"
-
-#include <winbase.h>
-
-#include <mutex>
-#include <string>
-
-namespace spdlog {
-namespace sinks {
-/*
- * MSVC sink (logging using OutputDebugStringA)
- */
-template<typename Mutex>
-class msvc_sink : public base_sink<Mutex>
-{
-public:
- explicit msvc_sink() {}
-
-protected:
- void sink_it_(const details::log_msg &msg) override
- {
-
- fmt::memory_buffer formatted;
- sink::formatter_->format(msg, formatted);
- OutputDebugStringA(fmt::to_string(formatted).c_str());
- }
-
- void flush_() override {}
-};
-
-using msvc_sink_mt = msvc_sink<std::mutex>;
-using msvc_sink_st = msvc_sink<details::null_mutex>;
-
-using windebug_sink_mt = msvc_sink_mt;
-using windebug_sink_st = msvc_sink_st;
-
-} // namespace sinks
-} // namespace spdlog
-
-#endif
diff --git a/matching/include/spdlog/sinks/null_sink.h b/matching/include/spdlog/sinks/null_sink.h
deleted file mode 100644
index 54f322c..0000000
--- a/matching/include/spdlog/sinks/null_sink.h
+++ /dev/null
@@ -1,49 +0,0 @@
-//
-// Copyright(c) 2015 Gabi Melman.
-// Distributed under the MIT License (http://opensource.org/licenses/MIT)
-//
-
-#pragma once
-
-#ifndef SPDLOG_H
-#include "spdlog/spdlog.h"
-#endif
-
-#include "spdlog/details/null_mutex.h"
-#include "spdlog/sinks/base_sink.h"
-
-#include <mutex>
-
-namespace spdlog {
-namespace sinks {
-
-template<typename Mutex>
-class null_sink : public base_sink<Mutex>
-{
-protected:
- void sink_it_(const details::log_msg &) override {}
- void flush_() override {}
-};
-
-using null_sink_mt = null_sink<std::mutex>;
-using null_sink_st = null_sink<details::null_mutex>;
-
-} // namespace sinks
-
-template<typename Factory = default_factory>
-inline std::shared_ptr<logger> null_logger_mt(const std::string &logger_name)
-{
- auto null_logger = Factory::template create<sinks::null_sink_mt>(logger_name);
- null_logger->set_level(level::off);
- return null_logger;
-}
-
-template<typename Factory = default_factory>
-inline std::shared_ptr<logger> null_logger_st(const std::string &logger_name)
-{
- auto null_logger = Factory::template create<sinks::null_sink_st>(logger_name);
- null_logger->set_level(level::off);
- return null_logger;
-}
-
-} // namespace spdlog
diff --git a/matching/include/spdlog/sinks/ostream_sink.h b/matching/include/spdlog/sinks/ostream_sink.h
deleted file mode 100644
index 22e377b..0000000
--- a/matching/include/spdlog/sinks/ostream_sink.h
+++ /dev/null
@@ -1,57 +0,0 @@
-//
-// Copyright(c) 2015 Gabi Melman.
-// Distributed under the MIT License (http://opensource.org/licenses/MIT)
-//
-
-#pragma once
-
-#ifndef SPDLOG_H
-#include "spdlog/spdlog.h"
-#endif
-
-#include "spdlog/details/null_mutex.h"
-#include "spdlog/sinks/base_sink.h"
-
-#include <mutex>
-#include <ostream>
-
-namespace spdlog {
-namespace sinks {
-template<typename Mutex>
-class ostream_sink final : public base_sink<Mutex>
-{
-public:
- explicit ostream_sink(std::ostream &os, bool force_flush = false)
- : ostream_(os)
- , force_flush_(force_flush)
- {
- }
- ostream_sink(const ostream_sink &) = delete;
- ostream_sink &operator=(const ostream_sink &) = delete;
-
-protected:
- void sink_it_(const details::log_msg &msg) override
- {
- fmt::memory_buffer formatted;
- sink::formatter_->format(msg, formatted);
- ostream_.write(formatted.data(), static_cast<std::streamsize>(formatted.size()));
- if (force_flush_)
- {
- ostream_.flush();
- }
- }
-
- void flush_() override
- {
- ostream_.flush();
- }
-
- std::ostream &ostream_;
- bool force_flush_;
-};
-
-using ostream_sink_mt = ostream_sink<std::mutex>;
-using ostream_sink_st = ostream_sink<details::null_mutex>;
-
-} // namespace sinks
-} // namespace spdlog
diff --git a/matching/include/spdlog/sinks/rotating_file_sink.h b/matching/include/spdlog/sinks/rotating_file_sink.h
deleted file mode 100644
index ae0f70f..0000000
--- a/matching/include/spdlog/sinks/rotating_file_sink.h
+++ /dev/null
@@ -1,164 +0,0 @@
-//
-// Copyright(c) 2015 Gabi Melman.
-// Distributed under the MIT License (http://opensource.org/licenses/MIT)
-//
-
-#pragma once
-
-#ifndef SPDLOG_H
-#include "spdlog/spdlog.h"
-#endif
-
-#include "spdlog/details/file_helper.h"
-#include "spdlog/details/null_mutex.h"
-#include "spdlog/fmt/fmt.h"
-#include "spdlog/sinks/base_sink.h"
-
-#include <cerrno>
-#include <chrono>
-#include <ctime>
-#include <mutex>
-#include <string>
-#include <tuple>
-
-namespace spdlog {
-namespace sinks {
-
-//
-// Rotating file sink based on size
-//
-template<typename Mutex>
-class rotating_file_sink final : public base_sink<Mutex>
-{
-public:
- rotating_file_sink(filename_t base_filename, std::size_t max_size, std::size_t max_files, bool rotate_on_open=false)
- : base_filename_(std::move(base_filename))
- , max_size_(max_size)
- , max_files_(max_files)
- {
- file_helper_.open(calc_filename(base_filename_, 0));
- current_size_ = file_helper_.size(); // expensive. called only once
- if (rotate_on_open && current_size_ > 0)
- {
- rotate_();
- }
- }
-
- // calc filename according to index and file extension if exists.
- // e.g. calc_filename("logs/mylog.txt, 3) => "logs/mylog.3.txt".
- static filename_t calc_filename(const filename_t &filename, std::size_t index)
- {
- typename std::conditional<std::is_same<filename_t::value_type, char>::value, fmt::memory_buffer, fmt::wmemory_buffer>::type w;
- if (index != 0u)
- {
- filename_t basename, ext;
- std::tie(basename, ext) = details::file_helper::split_by_extension(filename);
- fmt::format_to(w, SPDLOG_FILENAME_T("{}.{}{}"), basename, index, ext);
- }
- else
- {
- fmt::format_to(w, SPDLOG_FILENAME_T("{}"), filename);
- }
- return fmt::to_string(w);
- }
-
- const filename_t &filename() const
- {
- return file_helper_.filename();
- }
-
-protected:
- void sink_it_(const details::log_msg &msg) override
- {
- fmt::memory_buffer formatted;
- sink::formatter_->format(msg, formatted);
- current_size_ += formatted.size();
- if (current_size_ > max_size_)
- {
- rotate_();
- current_size_ = formatted.size();
- }
- file_helper_.write(formatted);
- }
-
- void flush_() override
- {
- file_helper_.flush();
- }
-
-private:
- // Rotate files:
- // log.txt -> log.1.txt
- // log.1.txt -> log.2.txt
- // log.2.txt -> log.3.txt
- // log.3.txt -> delete
- void rotate_()
- {
- using details::os::filename_to_str;
- file_helper_.close();
- for (auto i = max_files_; i > 0; --i)
- {
- filename_t src = calc_filename(base_filename_, i - 1);
- if (!details::file_helper::file_exists(src))
- {
- continue;
- }
- filename_t target = calc_filename(base_filename_, i);
-
- if (!rename_file(src, target))
- {
- // if failed try again after a small delay.
- // this is a workaround to a windows issue, where very high rotation
- // rates can cause the rename to fail with permission denied (because of antivirus?).
- details::os::sleep_for_millis(100);
- if (!rename_file(src, target))
- {
- file_helper_.reopen(true); // truncate the log file anyway to prevent it to grow beyond its limit!
- current_size_ = 0;
- throw spdlog_ex(
- "rotating_file_sink: failed renaming " + filename_to_str(src) + " to " + filename_to_str(target), errno);
- }
- }
- }
- file_helper_.reopen(true);
- }
-
- // delete the target if exists, and rename the src file to target
- // return true on success, false otherwise.
- bool rename_file(const filename_t &src_filename, const filename_t &target_filename)
- {
- // try to delete the target file in case it already exists.
- (void)details::os::remove(target_filename);
- return details::os::rename(src_filename, target_filename) == 0;
- }
-
- filename_t base_filename_;
- std::size_t max_size_;
- std::size_t max_files_;
- std::size_t current_size_;
- details::file_helper file_helper_;
-};
-
-using rotating_file_sink_mt = rotating_file_sink<std::mutex>;
-using rotating_file_sink_st = rotating_file_sink<details::null_mutex>;
-
-} // namespace sinks
-
-//
-// factory functions
-//
-
-template<typename Factory = default_factory>
-inline std::shared_ptr<logger> rotating_logger_mt(
- const std::string &logger_name, const filename_t &filename, size_t max_file_size, size_t max_files, bool rotate_on_open=false)
-{
- return Factory::template create<sinks::rotating_file_sink_mt>(logger_name, filename, max_file_size, max_files, rotate_on_open);
-}
-
-template<typename Factory = default_factory>
-inline std::shared_ptr<logger> rotating_logger_st(
- const std::string &logger_name, const filename_t &filename, size_t max_file_size, size_t max_files, bool rotate_on_open = false)
-{
- return Factory::template create<sinks::rotating_file_sink_st>(logger_name, filename, max_file_size, max_files, rotate_on_open);
-}
-} // namespace spdlog
diff --git a/matching/include/spdlog/sinks/sink.h b/matching/include/spdlog/sinks/sink.h
deleted file mode 100644
index 2f1adc1..0000000
--- a/matching/include/spdlog/sinks/sink.h
+++ /dev/null
@@ -1,59 +0,0 @@
-//
-// Copyright(c) 2015 Gabi Melman.
-// Distributed under the MIT License (http://opensource.org/licenses/MIT)
-//
-
-#pragma once
-
-#include "spdlog/details/log_msg.h"
-#include "spdlog/details/pattern_formatter.h"
-#include "spdlog/formatter.h"
-
-namespace spdlog {
-namespace sinks {
-class sink
-{
-public:
- sink()
- : level_(level::trace)
- , formatter_(new pattern_formatter())
- {
- }
-
- explicit sink(std::unique_ptr<spdlog::pattern_formatter> formatter)
- : level_(level::trace)
- , formatter_(std::move(formatter))
- {
- }
-
- virtual ~sink() = default;
- virtual void log(const details::log_msg &msg) = 0;
- virtual void flush() = 0;
- virtual void set_pattern(const std::string &pattern) = 0;
- virtual void set_formatter(std::unique_ptr<spdlog::formatter> sink_formatter) = 0;
-
- bool should_log(level::level_enum msg_level) const
- {
- return msg_level >= level_.load(std::memory_order_relaxed);
- }
-
- void set_level(level::level_enum log_level)
- {
- level_.store(log_level);
- }
-
- level::level_enum level() const
- {
- return static_cast<spdlog::level::level_enum>(level_.load(std::memory_order_relaxed));
- }
-
-protected:
- // sink log level - default is all
- level_t level_;
-
- // sink formatter - default is full format
- std::unique_ptr<spdlog::formatter> formatter_;
-};
-
-} // namespace sinks
-} // namespace spdlog
diff --git a/matching/include/spdlog/sinks/stdout_color_sinks.h b/matching/include/spdlog/sinks/stdout_color_sinks.h
deleted file mode 100644
index 74bfceb..0000000
--- a/matching/include/spdlog/sinks/stdout_color_sinks.h
+++ /dev/null
@@ -1,56 +0,0 @@
-//
-// Copyright(c) 2018 spdlog
-// Distributed under the MIT License (http://opensource.org/licenses/MIT)
-//
-
-#pragma once
-
-#ifndef SPDLOG_H
-#include "spdlog/spdlog.h"
-#endif
-
-#ifdef _WIN32
-#include "spdlog/sinks/wincolor_sink.h"
-#else
-#include "spdlog/sinks/ansicolor_sink.h"
-#endif
-
-namespace spdlog {
-namespace sinks {
-#ifdef _WIN32
-using stdout_color_sink_mt = wincolor_stdout_sink_mt;
-using stdout_color_sink_st = wincolor_stdout_sink_st;
-using stderr_color_sink_mt = wincolor_stderr_sink_mt;
-using stderr_color_sink_st = wincolor_stderr_sink_st;
-#else
-using stdout_color_sink_mt = ansicolor_stdout_sink_mt;
-using stdout_color_sink_st = ansicolor_stdout_sink_st;
-using stderr_color_sink_mt = ansicolor_stderr_sink_mt;
-using stderr_color_sink_st = ansicolor_stderr_sink_st;
-#endif
-} // namespace sinks
-
-template<typename Factory = default_factory>
-inline std::shared_ptr<logger> stdout_color_mt(const std::string &logger_name)
-{
- return Factory::template create<sinks::stdout_color_sink_mt>(logger_name);
-}
-
-template<typename Factory = default_factory>
-inline std::shared_ptr<logger> stdout_color_st(const std::string &logger_name)
-{
- return Factory::template create<sinks::stdout_color_sink_st>(logger_name);
-}
-
-template<typename Factory = default_factory>
-inline std::shared_ptr<logger> stderr_color_mt(const std::string &logger_name)
-{
- return Factory::template create<sinks::stderr_color_sink_mt>(logger_name);
-}
-
-template<typename Factory = default_factory>
-inline std::shared_ptr<logger> stderr_color_st(const std::string &logger_name)
-{
- return Factory::template create<sinks::stderr_color_sink_mt>(logger_name);
-}
-} // namespace spdlog
diff --git a/matching/include/spdlog/sinks/stdout_sinks.h b/matching/include/spdlog/sinks/stdout_sinks.h
deleted file mode 100644
index bf8e979..0000000
--- a/matching/include/spdlog/sinks/stdout_sinks.h
+++ /dev/null
@@ -1,102 +0,0 @@
-//
-// Copyright(c) 2015 Gabi Melman.
-// Distributed under the MIT License (http://opensource.org/licenses/MIT)
-//
-
-#pragma once
-
-#ifndef SPDLOG_H
-#include "spdlog/spdlog.h"
-#endif
-
-#include "spdlog/details/console_globals.h"
-#include "spdlog/details/null_mutex.h"
-
-#include <cstdio>
-#include <memory>
-#include <mutex>
-
-namespace spdlog {
-
-namespace sinks {
-
-template<typename TargetStream, typename ConsoleMutex>
-class stdout_sink final : public sink
-{
-public:
- using mutex_t = typename ConsoleMutex::mutex_t;
- stdout_sink()
- : mutex_(ConsoleMutex::mutex())
- , file_(TargetStream::stream())
- {
- }
- ~stdout_sink() override = default;
-
- stdout_sink(const stdout_sink &other) = delete;
- stdout_sink &operator=(const stdout_sink &other) = delete;
-
- void log(const details::log_msg &msg) override
- {
- std::lock_guard<mutex_t> lock(mutex_);
- fmt::memory_buffer formatted;
- formatter_->format(msg, formatted);
- fwrite(formatted.data(), sizeof(char), formatted.size(), file_);
- fflush(TargetStream::stream());
- }
-
- void flush() override
- {
- std::lock_guard<mutex_t> lock(mutex_);
- fflush(file_);
- }
-
- void set_pattern(const std::string &pattern) override
- {
- std::lock_guard<mutex_t> lock(mutex_);
- formatter_ = std::unique_ptr<spdlog::formatter>(new pattern_formatter(pattern));
- }
-
- void set_formatter(std::unique_ptr<spdlog::formatter> sink_formatter) override
- {
- std::lock_guard<mutex_t> lock(mutex_);
- formatter_ = std::move(sink_formatter);
- }
-
-private:
- mutex_t &mutex_;
- FILE *file_;
-};
-
-using stdout_sink_mt = stdout_sink<details::console_stdout, details::console_mutex>;
-using stdout_sink_st = stdout_sink<details::console_stdout, details::console_nullmutex>;
-
-using stderr_sink_mt = stdout_sink<details::console_stderr, details::console_mutex>;
-using stderr_sink_st = stdout_sink<details::console_stderr, details::console_nullmutex>;
-
-} // namespace sinks
-
-// factory methods
-template<typename Factory = default_factory>
-inline std::shared_ptr<logger> stdout_logger_mt(const std::string &logger_name)
-{
- return Factory::template create<sinks::stdout_sink_mt>(logger_name);
-}
-
-template<typename Factory = default_factory>
-inline std::shared_ptr<logger> stdout_logger_st(const std::string &logger_name)
-{
- return Factory::template create<sinks::stdout_sink_st>(logger_name);
-}
-
-template<typename Factory = default_factory>
-inline std::shared_ptr<logger> stderr_logger_mt(const std::string &logger_name)
-{
- return Factory::template create<sinks::stderr_sink_mt>(logger_name);
-}
-
-template<typename Factory = default_factory>
-inline std::shared_ptr<logger> stderr_logger_st(const std::string &logger_name)
-{
- return Factory::template create<sinks::stderr_sink_st>(logger_name);
-}
-} // namespace spdlog
diff --git a/matching/include/spdlog/sinks/syslog_sink.h b/matching/include/spdlog/sinks/syslog_sink.h
deleted file mode 100644
index c3bcd84..0000000
--- a/matching/include/spdlog/sinks/syslog_sink.h
+++ /dev/null
@@ -1,94 +0,0 @@
-//
-// Copyright(c) 2015 Gabi Melman.
-// Distributed under the MIT License (http://opensource.org/licenses/MIT)
-//
-
-#pragma once
-
-#ifndef SPDLOG_H
-#include "spdlog/spdlog.h"
-#endif
-
-#include "spdlog/sinks/base_sink.h"
-
-#include <array>
-#include <string>
-#include <syslog.h>
-
-namespace spdlog {
-namespace sinks {
-/**
- * Sink that write to syslog using the `syscall()` library call.
- *
- * Locking is not needed, as `syslog()` itself is thread-safe.
- */
-template<typename Mutex>
-class syslog_sink : public base_sink<Mutex>
-{
-public:
- //
- explicit syslog_sink(std::string ident = "", int syslog_option = 0, int syslog_facility = LOG_USER)
- : ident_(std::move(ident))
- {
- priorities_[static_cast<size_t>(level::trace)] = LOG_DEBUG;
- priorities_[static_cast<size_t>(level::debug)] = LOG_DEBUG;
- priorities_[static_cast<size_t>(level::info)] = LOG_INFO;
- priorities_[static_cast<size_t>(level::warn)] = LOG_WARNING;
- priorities_[static_cast<size_t>(level::err)] = LOG_ERR;
- priorities_[static_cast<size_t>(level::critical)] = LOG_CRIT;
- priorities_[static_cast<size_t>(level::off)] = LOG_INFO;
-
- // set ident to be program name if empty
- ::openlog(ident_.empty() ? nullptr : ident_.c_str(), syslog_option, syslog_facility);
- }
-
- ~syslog_sink() override
- {
- ::closelog();
- }
-
- syslog_sink(const syslog_sink &) = delete;
- syslog_sink &operator=(const syslog_sink &) = delete;
-
-protected:
- void sink_it_(const details::log_msg &msg) override
- {
- ::syslog(syslog_prio_from_level(msg), "%s", fmt::to_string(msg.payload).c_str());
- }
-
- void flush_() override {}
-
-private:
- std::array<int, 7> priorities_;
- // must store the ident because the man says openlog might use the pointer as
- // is and not a string copy
- const std::string ident_;
-
- //
- // Simply maps spdlog's log level to syslog priority level.
- //
- int syslog_prio_from_level(const details::log_msg &msg) const
- {
- return priorities_[static_cast<size_t>(msg.level)];
- }
-};
-
-using syslog_sink_mt = syslog_sink<std::mutex>;
-using syslog_sink_st = syslog_sink<details::null_mutex>;
-} // namespace sinks
-
-// Create and register a syslog logger
-template<typename Factory = default_factory>
-inline std::shared_ptr<logger> syslog_logger_mt(
- const std::string &logger_name, const std::string &syslog_ident = "", int syslog_option = 0, int syslog_facility = (1 << 3))
-{
- return Factory::template create<sinks::syslog_sink_mt>(logger_name, syslog_ident, syslog_option, syslog_facility);
-}
-
-template<typename Factory = default_factory>
-inline std::shared_ptr<logger> syslog_logger_st(
- const std::string &logger_name, const std::string &syslog_ident = "", int syslog_option = 0, int syslog_facility = (1 << 3))
-{
- return Factory::template create<sinks::syslog_sink_st>(logger_name, syslog_ident, syslog_option, syslog_facility);
-}
-} // namespace spdlog
diff --git a/matching/include/spdlog/sinks/wincolor_sink.h b/matching/include/spdlog/sinks/wincolor_sink.h
deleted file mode 100644
index 1fdf8c5..0000000
--- a/matching/include/spdlog/sinks/wincolor_sink.h
+++ /dev/null
@@ -1,143 +0,0 @@
-//
-// Copyright(c) 2016 spdlog
-// Distributed under the MIT License (http://opensource.org/licenses/MIT)
-//
-
-#pragma once
-
-#ifndef SPDLOG_H
-#include "spdlog/spdlog.h"
-#endif
-
-#include "spdlog/common.h"
-#include "spdlog/details/console_globals.h"
-#include "spdlog/details/null_mutex.h"
-#include "spdlog/sinks/sink.h"
-
-#include <memory>
-#include <mutex>
-#include <string>
-#include <unordered_map>
-#include <wincon.h>
-
-namespace spdlog {
-namespace sinks {
-/*
- * Windows color console sink. Uses WriteConsoleA to write to the console with
- * colors
- */
-template<typename OutHandle, typename ConsoleMutex>
-class wincolor_sink : public sink
-{
-public:
- const WORD BOLD = FOREGROUND_INTENSITY;
- const WORD RED = FOREGROUND_RED;
- const WORD GREEN = FOREGROUND_GREEN;
- const WORD CYAN = FOREGROUND_GREEN | FOREGROUND_BLUE;
- const WORD WHITE = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE;
- const WORD YELLOW = FOREGROUND_RED | FOREGROUND_GREEN;
-
- wincolor_sink()
- : out_handle_(OutHandle::handle())
- , mutex_(ConsoleMutex::mutex())
- {
- colors_[level::trace] = WHITE;
- colors_[level::debug] = CYAN;
- colors_[level::info] = GREEN;
- colors_[level::warn] = YELLOW | BOLD;
- colors_[level::err] = RED | BOLD; // red bold
- colors_[level::critical] = BACKGROUND_RED | WHITE | BOLD; // white bold on red background
- colors_[level::off] = 0;
- }
-
- ~wincolor_sink() override
- {
- this->flush();
- }
-
- wincolor_sink(const wincolor_sink &other) = delete;
- wincolor_sink &operator=(const wincolor_sink &other) = delete;
-
- // change the color for the given level
- void set_color(level::level_enum level, WORD color)
- {
- std::lock_guard<mutex_t> lock(mutex_);
- colors_[level] = color;
- }
-
- void log(const details::log_msg &msg) final override
- {
- std::lock_guard<mutex_t> lock(mutex_);
- fmt::memory_buffer formatted;
- formatter_->format(msg, formatted);
- if (msg.color_range_end > msg.color_range_start)
- {
- // before color range
- print_range_(formatted, 0, msg.color_range_start);
-
- // in color range
- auto orig_attribs = set_console_attribs(colors_[msg.level]);
- print_range_(formatted, msg.color_range_start, msg.color_range_end);
- ::SetConsoleTextAttribute(out_handle_,
- orig_attribs); // reset to orig colors
- // after color range
- print_range_(formatted, msg.color_range_end, formatted.size());
- }
- else // print without colors if color range is invalid
- {
- print_range_(formatted, 0, formatted.size());
- }
- }
-
- void flush() final override
- {
- // windows console always flushed?
- }
-
- void set_pattern(const std::string &pattern) override final
- {
- std::lock_guard<mutex_t> lock(mutex_);
- formatter_ = std::unique_ptr<spdlog::formatter>(new pattern_formatter(pattern));
- }
-
- void set_formatter(std::unique_ptr<spdlog::formatter> sink_formatter) override final
- {
- std::lock_guard<mutex_t> lock(mutex_);
- formatter_ = std::move(sink_formatter);
- }
-
-private:
- using mutex_t = typename ConsoleMutex::mutex_t;
- // set color and return the orig console attributes (for resetting later)
- WORD set_console_attribs(WORD attribs)
- {
- CONSOLE_SCREEN_BUFFER_INFO orig_buffer_info;
- ::GetConsoleScreenBufferInfo(out_handle_, &orig_buffer_info);
- WORD back_color = orig_buffer_info.wAttributes;
- // retrieve the current background color
- back_color &= static_cast<WORD>(~(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY));
- // keep the background color unchanged
- ::SetConsoleTextAttribute(out_handle_, attribs | back_color);
- return orig_buffer_info.wAttributes; // return orig attribs
- }
-
- // print a range of formatted message to console
- void print_range_(const fmt::memory_buffer &formatted, size_t start, size_t end)
- {
- auto size = static_cast<DWORD>(end - start);
- ::WriteConsoleA(out_handle_, formatted.data() + start, size, nullptr, nullptr);
- }
-
- HANDLE out_handle_;
- mutex_t &mutex_;
- std::unordered_map<level::level_enum, WORD, level::level_hasher> colors_;
-};
-
-using wincolor_stdout_sink_mt = wincolor_sink<details::console_stdout, details::console_mutex>;
-using wincolor_stdout_sink_st = wincolor_sink<details::console_stdout, details::console_nullmutex>;
-
-using wincolor_stderr_sink_mt = wincolor_sink<details::console_stderr, details::console_mutex>;
-using wincolor_stderr_sink_st = wincolor_sink<details::console_stderr, details::console_nullmutex>;
-
-} // namespace sinks
-} // namespace spdlog