Euphoria
log.h
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4
5// todo(Gustav): move logging to app layer and use sdl as log base, with fmt formatting instead
6
7namespace eu::log
8{
12#define LOG_INFOS(...) eu::log::get_global_logger()->info(__VA_ARGS__)
13
17#define LOG_WARNS(...) eu::log::get_global_logger()->warn(__VA_ARGS__)
18
22#define LOG_ERRS(...) eu::log::get_global_logger()->error(__VA_ARGS__)
23
27#define LOG_INFO(...) LOG_INFOS(fmt::format(__VA_ARGS__))
28
32#define LOG_WARN(...) LOG_WARNS(fmt::format(__VA_ARGS__))
33
37#define LOG_ERR(...) LOG_ERRS(fmt::format(__VA_ARGS__))
38
39
42 struct Logger
43 {
44 Logger() = default;
45 virtual ~Logger() = default;
46
47 Logger(const Logger&) = delete;
48 Logger(Logger&&) = delete;
49 void operator=(const Logger&) = delete;
50 void operator=(Logger&&) = delete;
51
53 virtual void info(const std::string& str) = 0;
54
56 virtual void warn(const std::string& str) = 0;
57
59 virtual void error(const std::string& str) = 0;
60 };
61
64 {
67
68 ScopedLogger(const ScopedLogger&) = delete;
70 void operator=(const ScopedLogger&) = delete;
71 void operator=(ScopedLogger&&) = delete;
72 };
73
75}
76
Definition log.h:8
Logger * get_global_logger()
A (inclusive) range between two values.
Definition range.h:19
Logger output class.
Definition log.h:43
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:64
ScopedLogger(const ScopedLogger &)=delete
ScopedLogger(ScopedLogger &&)=delete
void operator=(ScopedLogger &&)=delete
ScopedLogger(Logger *new_log)
void operator=(const ScopedLogger &)=delete