Euphoria
log.h
Go to the documentation of this file.
1#pragma once
2
3// todo(Gustav): move logging to app layer and use sdl as log base, with fmt formatting instead
4
5namespace eu::log
6{
10#define LOG_INFOS(...) eu::log::get_global_logger()->info(__VA_ARGS__)
11
15#define LOG_WARNS(...) eu::log::get_global_logger()->warn(__VA_ARGS__)
16
20#define LOG_ERRS(...) eu::log::get_global_logger()->error(__VA_ARGS__)
21
25#define LOG_INFO(...) LOG_INFOS(fmt::format(__VA_ARGS__))
26
30#define LOG_WARN(...) LOG_WARNS(fmt::format(__VA_ARGS__))
31
35#define LOG_ERR(...) LOG_ERRS(fmt::format(__VA_ARGS__))
36
37
40 struct Logger
41 {
42 Logger() = default;
43 virtual ~Logger() = default;
44
45 Logger(const Logger&) = delete;
46 Logger(Logger&&) = delete;
47 void operator=(const Logger&) = delete;
48 void operator=(Logger&&) = delete;
49
51 virtual void info(const std::string& str) = 0;
52
54 virtual void warn(const std::string& str) = 0;
55
57 virtual void error(const std::string& str) = 0;
58 };
59
62 {
65
66 ScopedLogger(const ScopedLogger&) = delete;
68 void operator=(const ScopedLogger&) = delete;
69 void operator=(ScopedLogger&&) = delete;
70 };
71
73}
74
Definition log.h:6
Logger * get_global_logger()
A (inclusive) range between two values.
Definition range.h:19
Logger output class.
Definition log.h:41
virtual void warn(const std::string &str)=0
Called when printing a warning message.
Logger(Logger &&)=delete
virtual ~Logger()=default
Logger(const Logger &)=delete
Logger()=default
void operator=(const Logger &)=delete
void operator=(Logger &&)=delete
virtual void info(const std::string &str)=0
Called when printing a info message.
virtual void error(const std::string &str)=0
Called when printing a error message.
RAII handler to change the current Logger class.
Definition log.h:62
ScopedLogger(const ScopedLogger &)=delete
ScopedLogger(ScopedLogger &&)=delete
void operator=(ScopedLogger &&)=delete
ScopedLogger(Logger *new_log)
void operator=(const ScopedLogger &)=delete