Elaztek Developer Hub
Blamite Game Engine - Strings  00307.01.26.21.0804.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 
17 enum class BlamLogLevel
18 {
19  None,
20  Warning,
21  Error,
22  Severe,
23 
30  Input,
31 
37  AiError
38 };
39 
44 {
45 public:
47  std::string message = "";
48  std::string timestamp = "";
49 
61  std::string GetMessageLine();
62 };
63 
68 {
69 public:
75  virtual void LogMessageReceived(BlamBasicLogMessage message) {};
76 };
77 
87 {
88 private:
89  std::vector<BlamBasicLogMessage> history = std::vector<BlamBasicLogMessage>();
90  std::vector<BlamLogReceiver*> receivers = std::vector<BlamLogReceiver*>();
91 
92 public:
97 
101  void ClearHistory();
102 
108  std::vector<BlamBasicLogMessage> GetHistory();
109 
115  void LogEvent(BlamBasicLogMessage message);
116 
122  void LogEvent(std::string message);
123 
130  void LogEvent(std::string message, BlamLogLevel log_level);
131 
137  void AddReceiver(BlamLogReceiver* receiver);
138 
144  void RemoveReceiver(BlamLogReceiver* receiver);
145 };
146 
151 {
159  STRINGS_API std::string GenerateLogLevelPrefix(BlamLogLevel log_level);
160 }
BlamLogReceiver
Interface used to receive log messages.
Definition: logger.h:67
BlamBasicLogMessage
Class represneting a basic log message.
Definition: logger.h:43
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:3
BlamLogReceiver::LogMessageReceived
virtual void LogMessageReceived(BlamBasicLogMessage message)
Called whenever a log message is received.
Definition: logger.h:75
STRINGS_API
#define STRINGS_API
Definition: logger.h:11
BlamLogLevel::AiError
@ AiError
Placeholder for the future, indicates an error with AI.
BlamStringsInternal::Logger::API::AddReceiver
STRINGS_API void AddReceiver(BlamLogReceiver *receiver)
Registers a receiver which will be notified on new log messages.
Definition: logger.cpp:25
BlamStringsInternal::Logger::API::RemoveReceiver
STRINGS_API void RemoveReceiver(BlamLogReceiver *receiver)
Unregisters a receiver.
Definition: logger.cpp:30
BlamLogLevel::Error
@ Error
Indicates an error that could cause engine instability.
BlamLogLevel::None
@ None
Indicates no severity, and is displayed with no formatting.
BlamLogLevel::Input
@ Input
Indicates that the user has executed a command from console.
BlamLogLevel::Severe
@ Severe
Indicates a severe error that the engine cannot recover from.
BlamStrings::Interface::Logger
Namespace containing functions related to the logger.
Definition: logger.h:150
BlamBasicLogger
Class representing a basic logger.
Definition: logger.h:86
BlamLogLevel
BlamLogLevel
Enumerator to specify log event severity.
Definition: logger.h:17
BlamStringsInternal::Logger::LogEvent
STRINGS_INTERNAL void LogEvent(std::string message, BlamLogLevel log_level)
Logs an event to the Strings log.
Definition: logger.cpp:20
BlamLogLevel::Warning
@ Warning
Indicates a warning message. Not something critical, but something that could cause unexpected behavi...
datetime.h