11 #include "../util/active.h"
41 #define YAGE_ERROR_TMP ERROR
51 #define ERROR YAGE_ERROR_TMP
85 std::ostringstream buffer_;
111 virtual ~Concept() =
default;
113 virtual Concept *clone()
const = 0;
115 const std::string &msg)
const = 0;
118 template <
typename T>
119 struct Model : Concept {
121 virtual Concept *clone()
const override;
123 const std::string &msg)
const override;
128 std::unique_ptr<Concept> wrapper_;
135 explicit Logger(
const std::string &file_path);
140 const std::string &fileName =
"",
int lineNum = -1);
144 void remove(
const LogSink &sink);
153 std::vector<LogSink> sinks_;
154 std::unique_ptr<Active> active_;
168 template <
typename T>
173 template <
typename T>
174 LogSink::Model<T>::Model(T impl_i) : impl(impl_i)
178 template <
typename T>
179 LogSink::Concept *LogSink::Model<T>::clone()
const
181 return new Model<T>(impl);
184 template <
typename T>
185 void LogSink::Model<T>::write(
const LogMessage::Meta &meta,
186 const std::string &msg)
const
191 template <
typename T>
200 #define yLogger (yage::Logger::instance())
203 (yage::Logger::instance()(yage::LogLevel::DEBUG, __FILE__, __LINE__))
206 (yage::Logger::instance()(yage::LogLevel::INFO, __FILE__, __LINE__))
208 #define yLogWarning \
209 (yage::Logger::instance()(yage::LogLevel::WARNING, __FILE__, __LINE__))
212 (yage::Logger::instance()(yage::LogLevel::ERROR, __FILE__, __LINE__))
215 (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:28
void setLevel(LogLevel min_level)
Definition: logger.cpp:233
void clear()
Definition: logger.cpp:221
LogSink makeConsoleSink()
LogSink(T impl)
Definition: logger.h:169
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:192
static Logger & instance()
Definition: logger.cpp:226
LogMessage operator()(LogLevel level=LogLevel::INFO, const std::string &fileName="", int lineNum=-1)
Definition: logger.cpp:185
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:191
LogMessage & operator=(const LogMessage &msg)=delete
LogSink & operator=(const LogSink &sink)
bool operator==(const LogSink &sink)
void add(const LogSink &sink)
Definition: logger.cpp:207