/src/spdlog/include/spdlog/sinks/sink.h
Line | Count | Source |
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 | | |
6 | | #include <spdlog/details/log_msg.h> |
7 | | #include <spdlog/formatter.h> |
8 | | |
9 | | namespace spdlog { |
10 | | |
11 | | namespace sinks { |
12 | | class SPDLOG_API sink { |
13 | | public: |
14 | 2 | virtual ~sink() = default; |
15 | | virtual void log(const details::log_msg &msg) = 0; |
16 | | virtual void flush() = 0; |
17 | | virtual void set_pattern(const std::string &pattern) = 0; |
18 | | virtual void set_formatter(std::unique_ptr<spdlog::formatter> sink_formatter) = 0; |
19 | | |
20 | | void set_level(level::level_enum log_level); |
21 | | level::level_enum level() const; |
22 | | bool should_log(level::level_enum msg_level) const; |
23 | | |
24 | | protected: |
25 | | // sink log level - default is all |
26 | | level_t level_{level::trace}; |
27 | | }; |
28 | | |
29 | | } // namespace sinks |
30 | | } // namespace spdlog |
31 | | |
32 | | #ifdef SPDLOG_HEADER_ONLY |
33 | | #include "sink-inl.h" |
34 | | #endif |