12 #include "../util/active.h"
42 #define YAGE_ERROR_TMP ERROR
52 #define ERROR YAGE_ERROR_TMP
86 std::ostringstream buffer_;
112 virtual ~Concept() =
default;
114 virtual Concept *clone()
const = 0;
116 const std::string &msg)
const = 0;
119 template <
typename T>
120 struct Model : Concept {
122 virtual Concept *clone()
const override;
124 const std::string &msg)
const override;
129 std::unique_ptr<Concept> wrapper_;
136 explicit Logger(
const std::string &file_path);
141 const std::string &fileName =
"",
int lineNum = -1);
145 void remove(
const LogSink &sink);
154 std::vector<LogSink> sinks_;
155 std::unique_ptr<Active> active_;
169 template <
typename T>
174 template <
typename T>
175 LogSink::Model<T>::Model(T impl_i) : impl(impl_i)
179 template <
typename T>
180 LogSink::Concept *LogSink::Model<T>::clone()
const
182 return new Model<T>(impl);
185 template <
typename T>
186 void LogSink::Model<T>::write(
const LogMessage::Meta &meta,
187 const std::string &msg)
const
192 template <
typename T>
201 #define yLogger (yage::Logger::instance())
204 (yage::Logger::instance()(yage::LogLevel::DEBUG, __FILE__, __LINE__))
207 (yage::Logger::instance()(yage::LogLevel::INFO, __FILE__, __LINE__))
209 #define yLogWarning \
210 (yage::Logger::instance()(yage::LogLevel::WARNING, __FILE__, __LINE__))
213 (yage::Logger::instance()(yage::LogLevel::ERROR, __FILE__, __LINE__))
216 (yage::Logger::instance()(yage::LogLevel::FATAL, __FILE__, __LINE__))
Fatal message that should be output when the game crashes.
LogLevel
Different log levels that can be assigned to each message sent to the Logger.
Definition: logger.h:29
void setLevel(LogLevel min_level)
Definition: logger.cpp:234
void clear()
Definition: logger.cpp:222
LogSink makeConsoleSink()
LogSink(T impl)
Definition: logger.h:170
LogSink makeFileSink(const std::string &filename)
void write(const LogMessage::Meta &meta, const std::string &msg) const
LogMessage & operator<<(const T &value)
Definition: logger.h:193
static Logger & instance()
Definition: logger.cpp:227
LogMessage operator()(LogLevel level=LogLevel::INFO, const std::string &fileName="", int lineNum=-1)
Definition: logger.cpp:186
LogMessage(const LogMessage &msg)=delete
Lowest log level. This is used by the game engine to output debugging information but is turned off i...
void flush(const LogMessage *msg)
Definition: logger.cpp:192
LogMessage & operator=(const LogMessage &msg)=delete
LogSink & operator=(const LogSink &sink)
bool operator==(const LogSink &sink)
void add(const LogSink &sink)
Definition: logger.cpp:208