diff options
Diffstat (limited to 'matching/include/spdlog/sinks/stdout_sinks.h')
-rw-r--r-- | matching/include/spdlog/sinks/stdout_sinks.h | 102 |
1 files changed, 0 insertions, 102 deletions
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 |