spdlog
Loading...
Searching...
No Matches
stdout_sinks.h
Go to the documentation of this file.
1// Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
2// Distributed under the MIT License (http://opensource.org/licenses/MIT)
3
4#pragma once
5
8#include <spdlog/sinks/sink.h>
9#include <cstdio>
10
11#ifdef _WIN32
13#endif
14
15namespace spdlog {
16
17namespace sinks {
18
19template<typename ConsoleMutex>
20class stdout_sink_base : public sink
21{
22public:
23 using mutex_t = typename ConsoleMutex::mutex_t;
24 explicit stdout_sink_base(FILE *file);
25 ~stdout_sink_base() override = default;
26
27 stdout_sink_base(const stdout_sink_base &other) = delete;
29
32
33 void log(const details::log_msg &msg) override;
34 void flush() override;
35 void set_pattern(const std::string &pattern) override;
36
37 void set_formatter(std::unique_ptr<spdlog::formatter> sink_formatter) override;
38
39protected:
41 FILE *file_;
43#ifdef _WIN32
44 HANDLE handle_;
45#endif // WIN32
46};
47
48template<typename ConsoleMutex>
49class stdout_sink : public stdout_sink_base<ConsoleMutex>
50{
51public:
53};
54
55template<typename ConsoleMutex>
56class stderr_sink : public stdout_sink_base<ConsoleMutex>
57{
58public:
60};
61
64
67
68} // namespace sinks
69
70// factory methods
71template<typename Factory = spdlog::synchronous_factory>
73
74template<typename Factory = spdlog::synchronous_factory>
76
77template<typename Factory = spdlog::synchronous_factory>
79
80template<typename Factory = spdlog::synchronous_factory>
82
83} // namespace spdlog
84
85#ifdef SPDLOG_HEADER_ONLY
86# include "stdout_sinks-inl.h"
87#endif
stdout_sink_base(stdout_sink_base &&other)=delete
stdout_sink_base & operator=(stdout_sink_base &&other)=delete
void log(const details::log_msg &msg) override
stdout_sink_base(const stdout_sink_base &other)=delete
void set_pattern(const std::string &pattern) override
stdout_sink_base & operator=(const stdout_sink_base &other)=delete
void set_formatter(std::unique_ptr< spdlog::formatter > sink_formatter) override
~stdout_sink_base() override=default
typename ConsoleMutex::mutex_t mutex_t
std::unique_ptr< spdlog::formatter > formatter_
Definition async.h:25
SPDLOG_INLINE std::shared_ptr< logger > stdout_logger_mt(const std::string &logger_name)
SPDLOG_INLINE std::shared_ptr< logger > stderr_logger_st(const std::string &logger_name)
SPDLOG_INLINE std::shared_ptr< logger > stderr_logger_mt(const std::string &logger_name)
SPDLOG_INLINE std::shared_ptr< logger > stdout_logger_st(const std::string &logger_name)