Elaztek Developer Hub
Blamite Game Engine - Strings  00313.05.23.21.2038.blamite
A library containing general purpose utilities and classes for use in multiple projects.
logger.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <string>
4 #include <vector>
5 
7 
8 #ifdef STRINGS_EXPORTS
9 #define STRINGS_API __declspec(dllexport)
10 #else
11 #define STRINGS_API __declspec(dllimport)
12 #endif
13 
14 #define LOGGER_ID_GUERILLA 1
15 #define LOGGER_ID_KEYSTONE 2
16 #define LOGGER_ID_STRINGS 3
17 #define LOGGER_ID_TOOL 4
18 
19 class BlamBasicLogger;
20 
27 enum class TerminalColor
28 {
29  Black,
30  Blue,
31  Green,
32  Cyan,
33  Red,
34  Magenta,
35  Gold,
36  Gray,
37 
38  DarkGray,
39  BrightBlue,
41  BrightCyan,
42  BrightRed,
44  Yellow,
45  White,
46  Reset
47 };
48 
52 enum class BlamLogLevel
53 {
54  None,
55  Warning,
56  Error,
57  Severe,
58 
65  Input,
66 
72  AiError
73 };
74 
79 {
80 public:
81  BlamBasicLogger* logger = nullptr;
83  std::string message = "";
84  std::string timestamp = "";
85 
97  std::string GetMessageLine();
98 };
99 
104 {
105 public:
111  virtual void LogMessageReceived(BlamBasicLogMessage message) {};
112 };
113 
123 {
124 private:
125  bool print_to_stdout = false;
126 
127  std::vector<BlamBasicLogMessage> history = std::vector<BlamBasicLogMessage>();
128  std::vector<BlamLogReceiver*> receivers = std::vector<BlamLogReceiver*>();
129 
130  int unique_id = -1;
131  bool has_id = false;
132 
133 public:
137  BlamBasicLogger();
138 
144  BlamBasicLogger(int _unique_id);
145 
149  void ClearHistory();
150 
156  std::vector<BlamBasicLogMessage> GetHistory();
157 
163  void LogEvent(BlamBasicLogMessage message);
164 
170  void LogEvent(std::string message);
171 
178  void LogEvent(std::string message, BlamLogLevel log_level);
179 
185  void AddReceiver(BlamLogReceiver* receiver);
186 
192  void RemoveReceiver(BlamLogReceiver* receiver);
193 };
194 
199 {
207  STRINGS_API std::string GenerateLogLevelPrefix(BlamLogLevel log_level);
208 
217 
224  STRINGS_API void PrintMessageToStdout(std::string message, TerminalColor color);
225 }
TerminalColor::Reset
@ Reset
TerminalColor::Blue
@ Blue
BlamLogReceiver
Interface used to receive log messages.
Definition: logger.h:103
BlamLogLevel::Input
@ Input
Indicates that the user has executed a command from console.
BlamBasicLogMessage
Class represneting a basic log message.
Definition: logger.h:78
BlamStrings::Interface::Logger::GenerateLogLevelPrefix
STRINGS_API std::string GenerateLogLevelPrefix(BlamLogLevel log_level)
Generates a prefix for a given log level, such as [INFO] or [WARN].
Definition: logger.cpp:7
BlamTool::Logger::API::GetHistory
STRINGS_API std::vector< BlamBasicLogMessage > GetHistory()
Retrieves Tool's log history.
Definition: logger.cpp:53
TerminalColor::Green
@ Green
BlamLogReceiver::LogMessageReceived
virtual void LogMessageReceived(BlamBasicLogMessage message)
Called whenever a log message is received.
Definition: logger.h:111
TerminalColor::BrightMagenta
@ BrightMagenta
BlamTool::Logger::API::AddReceiver
STRINGS_API void AddReceiver(BlamLogReceiver *receiver)
Registers a receiver which will be notified on new log messages.
Definition: logger.cpp:43
TerminalColor::BrightGreen
@ BrightGreen
TerminalColor::BrightRed
@ BrightRed
TerminalColor::Yellow
@ Yellow
TerminalColor
TerminalColor
Enumerator listing all possible terminal colors.
Definition: logger.h:27
BlamLogLevel
BlamLogLevel
Enumerator to specify log event severity.
Definition: logger.h:52
BlamLogLevel::Warning
@ Warning
Indicates a warning message. Not something critical, but something that could cause unexpected behavi...
TerminalColor::Magenta
@ Magenta
TerminalColor::White
@ White
BlamStrings::Interface::Logger::TranslateLogLevelAsColor
STRINGS_API TerminalColor TranslateLogLevelAsColor(BlamLogLevel log_level)
Translates a given BlamLogLevel into the appropriate terminal color.
Definition: logger.cpp:29
TerminalColor::Gray
@ Gray
BlamTool::Logger::LogEvent
STRINGS_INTERNAL void LogEvent(std::string message, std::string color_escape_prefix)
Logs an event to Tool's log.
Definition: logger.cpp:38
TerminalColor::Gold
@ Gold
BlamLogLevel::AiError
@ AiError
Placeholder for the future, indicates an error with AI.
BlamLogLevel::Severe
@ Severe
Indicates a severe error that the engine cannot recover from.
TerminalColor::Cyan
@ Cyan
TerminalColor::DarkGray
@ DarkGray
BlamLogLevel::None
@ None
Indicates no severity, and is displayed with no formatting.
STRINGS_API
#define STRINGS_API
Definition: logger.h:11
BlamStrings::Interface::Logger
Namespace containing functions related to the logger.
Definition: logger.h:198
TerminalColor::BrightCyan
@ BrightCyan
TerminalColor::Black
@ Black
BlamBasicLogger
Class representing a basic logger.
Definition: logger.h:122
BlamLogLevel::Error
@ Error
Indicates an error that could cause engine instability.
TerminalColor::Red
@ Red
BlamTool::Logger::API::RemoveReceiver
STRINGS_API void RemoveReceiver(BlamLogReceiver *receiver)
Unregisters a receiver.
Definition: logger.cpp:48
TerminalColor::BrightBlue
@ BrightBlue
datetime.h
BlamStrings::Interface::Logger::PrintMessageToStdout
STRINGS_API void PrintMessageToStdout(std::string message, TerminalColor color)
Prints a message to the standard output.
Definition: logger.cpp:49