mirror of
https://github.com/gabime/spdlog.git
synced 2025-09-29 01:29:35 +08:00
added level_t to sink. Improves the flexibility of loggers with multiple sinks
This commit is contained in:
@@ -15,10 +15,33 @@ namespace sinks
|
||||
class sink
|
||||
{
|
||||
public:
|
||||
sink(): _level( level::trace ) {}
|
||||
|
||||
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;
|
||||
|
||||
};
|
||||
|
||||
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));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user