bitz-server  2.0.0
sink.h
1 //
2 // Copyright(c) 2015 Gabi Melman.
3 // Distributed under the MIT License (http://opensource.org/licenses/MIT)
4 //
5 
6 #pragma once
7 
8 #include "../details/log_msg.h"
9 
10 namespace spdlog {
11 namespace sinks {
12 class sink
13 {
14 public:
15  virtual ~sink() = default;
16 
17  virtual void log(const details::log_msg &msg) = 0;
18  virtual void flush() = 0;
19 
20  bool should_log(level::level_enum msg_level) const;
21  void set_level(level::level_enum log_level);
22  level::level_enum level() const;
23 
24 private:
25  level_t _level{level::trace};
26 };
27 
28 inline bool sink::should_log(level::level_enum msg_level) const
29 {
30  return msg_level >= _level.load(std::memory_order_relaxed);
31 }
32 
33 inline void sink::set_level(level::level_enum log_level)
34 {
35  _level.store(log_level);
36 }
37 
38 inline level::level_enum sink::level() const
39 {
40  return static_cast<spdlog::level::level_enum>(_level.load(std::memory_order_relaxed));
41 }
42 
43 } // namespace sinks
44 } // namespace spdlog
Definition: async_logger.h:26
Definition: log_msg.h:16
Definition: null_mutex.h:23
Definition: sink.h:12