galaxy
1.0.0
Real-Time C++23 Game Programming Framework. Built on data-driven design principles and agile software engineering.
Loading...
Searching...
No Matches
Log.cpp
Go to the documentation of this file.
1
7
8
#include <cstdarg>
9
10
#include <Raylib.hpp>
11
12
#include "
galaxy/platform/Pragma.hpp
"
13
14
#include "
Log.hpp
"
15
16
#ifdef GALAXY_WIN_PLATFORM
17
GALAXY_DISABLE_WARNING_PUSH
18
GALAXY_DISABLE_WARNING
(26477)
19
#endif
20
21
namespace
galaxy
22
{
23
Log::Log
() noexcept
24
:
m_min_level
{
LogLevel::INFO
}
25
{
26
m_sinks.reserve(2);
27
28
ray::SetTraceLogLevel(ray::LOG_DEBUG);
29
ray::SetTraceLogCallback([](
int
msgType,
const
char
* text, va_list args) {
30
va_list args_copy;
31
va_copy(args_copy, args);
32
33
const
auto
size = vsnprintf(
nullptr
, 0, text, args_copy);
34
va_end(args_copy);
35
36
std::string result(size,
'\0'
);
37
vsnprintf(result.data(), result.size() + 1, text, args);
38
39
switch
(msgType)
40
{
41
case
ray::LOG_DEBUG:
42
case
ray::LOG_INFO:
43
GALAXY_LOG
(
GALAXY_INFO
,
"[Raylib] {0}"
, result);
44
break
;
45
46
case
ray::LOG_WARNING:
47
GALAXY_LOG
(
GALAXY_WARN
,
"[Raylib] {0}"
, result);
48
break
;
49
50
case
ray::LOG_ERROR:
51
GALAXY_LOG
(
GALAXY_ERROR
,
"[Raylib] {0}"
, result);
52
break
;
53
54
case
ray::LOG_FATAL:
55
GALAXY_LOG
(
GALAXY_FATAL
,
"[Raylib] {0}"
, result);
56
break
;
57
58
default
:
59
GALAXY_LOG
(
GALAXY_ERROR
,
"Unknown raylib log message level."
);
60
break
;
61
}
62
});
63
}
64
65
Log::~Log
() noexcept
66
{
67
// We reset min level because logging is done as a singleton.
68
m_min_level
=
LogLevel::INFO
;
69
m_sinks
.clear();
70
}
71
}
// namespace galaxy
72
73
#ifdef GALAXY_WIN_PLATFORM
74
GALAXY_DISABLE_WARNING_POP
75
#endif
Log.hpp
GALAXY_INFO
#define GALAXY_INFO
Log.hpp galaxy.
Definition
Log.hpp:23
GALAXY_LOG
#define GALAXY_LOG(level, msg,...)
Definition
Log.hpp:29
GALAXY_WARN
#define GALAXY_WARN
Definition
Log.hpp:24
GALAXY_FATAL
#define GALAXY_FATAL
Definition
Log.hpp:26
GALAXY_ERROR
#define GALAXY_ERROR
Definition
Log.hpp:25
Pragma.hpp
GALAXY_DISABLE_WARNING_POP
#define GALAXY_DISABLE_WARNING_POP
Definition
Pragma.hpp:60
GALAXY_DISABLE_WARNING
#define GALAXY_DISABLE_WARNING(x)
Definition
Pragma.hpp:61
GALAXY_DISABLE_WARNING_PUSH
#define GALAXY_DISABLE_WARNING_PUSH
Macro for windows platform detection.
Definition
Pragma.hpp:59
galaxy::Log::Log
Log() noexcept
Constructor.
Definition
Log.cpp:23
galaxy::Log::~Log
~Log() noexcept
Destructor.
Definition
Log.cpp:65
galaxy::Log::m_sinks
std::vector< std::unique_ptr< Sink > > m_sinks
List of sinks.
Definition
Log.hpp:119
galaxy::Log::m_min_level
LogLevel m_min_level
Minimum level for a message to be logged.
Definition
Log.hpp:114
galaxy
Application.hpp galaxy.
Definition
Application.cpp:35
galaxy::LogLevel::INFO
@ INFO
Info Log Level.
Definition
LogLevel.hpp:28
galaxy
src
galaxy
logging
Log.cpp
Generated on
for galaxy by
1.17.0