SHA256
32 lines
842 B
C++
32 lines
842 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& 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
|