1
0
mirror of https://github.com/gabime/spdlog.git synced 2025-03-15 02:29:54 +08:00
spdlog/include/spdlog/sinks/sink.h

48 lines
920 B
C
Raw Normal View History

2016-04-20 16:57:49 +08:00
//
// Copyright(c) 2015 Gabi Melman.
// Distributed under the MIT License (http://opensource.org/licenses/MIT)
//
#pragma once
#include <spdlog/details/log_msg.h>
namespace spdlog
{
namespace sinks
{
class sink
{
public:
sink(): _level( level::trace ) {}
2016-04-20 16:57:49 +08:00
virtual ~sink() {}
virtual void log(const details::log_msg& msg) = 0;
virtual void flush() = 0;
bool should_log(level::level_enum msg_level) const;
void set_level(level::level_enum log_level);
level::level_enum level() const;
private:
level_t _level;
2016-04-20 16:57:49 +08:00
};
inline bool sink::should_log(level::level_enum msg_level) const {
return msg_level >= _level.load(std::memory_order_relaxed);
}
inline void sink::set_level(level::level_enum log_level) {
_level.store(log_level);
}
inline level::level_enum sink::level() const {
return static_cast<spdlog::level::level_enum>(_level.load(std::memory_order_relaxed));
}
2016-04-20 16:57:49 +08:00
}
}