Index

zydeco / 3c60e1a

Experiment in graphics programming, C++, OpenGL, simulation techniques.

Latest Commit

{#}TimeHashSubjectAuthor#(+)(-)GPG?
405 Aug 2023 20:500dd781aCreate event handling and threads structureJosh Stockin1100G

Blob @ zydeco / include / Logger.hpp

text/plain831 bytesdownload raw
1#ifndef LOGGER_HPP_
2#define LOGGER_HPP_
3
4
5#include <ostream>
6#include <string>
7#include <fmt/format.h>
8
9
10class Logger
11{
12public:
13 Logger(std::string logger_name);
14 ~Logger() = default;
15
16 enum Verbosity
17 {
18 DISABLED,
19 ERROR,
20 WARNING,
21 INFO,
22 DEBUG,
23 VERBOSE,
24 TRACE,
25 };
26
27 static void InitializeLogging(Verbosity max_verbosity, std::ostream *ostream);
28
29 void Log(Verbosity verbosity, std::string message);
30
31 template<typename... Args>
32 void Log(Verbosity verbosity, fmt::format_string<Args...> message, Args&&... args)
33 {
34 Log(verbosity, fmt::vformat(message, fmt::make_format_args(args...)));
35 }
36
37protected:
38 static std::ostream *s_ostream;
39 static Verbosity s_maxVerbosity;
40
41 std::string m_loggerName;
42};
43
44
45#endif /* LOGGER_HPP_ */
46