#pragma once #include namespace logging { class layout; struct logpacket; class properties; enum class level : int; struct appender { virtual ~appender() = default; virtual std::ostream & stream() = 0; virtual void write(logpacket const & packet, layout & withLayout) = 0; virtual bool should_log(level ll) const = 0; virtual void flush() = 0; }; struct simple_appender : appender { level threshold; simple_appender() = default; simple_appender(properties const & props); void write(logpacket const & packet, layout & withLayout) override; bool should_log(level ll) const override; void flush() override; }; }