Files
FeatherLog/include/featherlog/log_outputter.hpp
T
2026-08-17 18:41:32 +08:00

32 lines
852 B
C++

#ifndef FEATHERLOG_LOG_OUTPUTTER_HPP
#define FEATHERLOG_LOG_OUTPUTTER_HPP
#include <memory>
#include <featherlog/log_formatter.hpp>
#include <featherlog/log_message.hpp>
#include <featherlog/flog_definitions.h>
namespace flog {
class FLOG_API LogOutputter {
public:
explicit LogOutputter(std::string name) noexcept : name(std::move(name)) {}
virtual ~LogOutputter() = default;
std::string& FLOG_CALL getName() const noexcept;
std::unique_ptr<LogFormatter> FLOG_CALL set_formatter(const std::unique_ptr<LogFormatter> &formatter);
[[nodiscard]] const std::unique_ptr<LogFormatter> & FLOG_CALL get_formatter() const;
virtual void FLOG_CALL write(const LogMessage &message) = 0;
protected:
std::string name;
std::unique_ptr<LogFormatter> m_logFormatter;
};
}
#endif