Api
Wiki page
Debug API
Public logging, log levels, crash handlers, and debug providers.
Include
#include <debug/DebugManager.hpp>DebugManager
DebugManager is a singleton logger:
auto& debug = Public::Debug::DebugManager::getInstance();
debug.Initialize("game.log");
debug.EnableConsoleOutput(true);
debug.SetMinLogLevel(Public::Debug::ILogger::LogLevel::Verbose);| API | Purpose |
|---|---|
Initialize(logDirectory, warnLeftovers, maxAgeInDays, purgeLeftovers) | Set up log files and cleanup policy. |
Log(level, message, useLogFile, recursive) | Write a log entry. |
EnableConsoleOutput(bool) | Mirror logs to console. |
SetMinLogLevel(level) | Filter lower-priority logs. |
UnhandledExceptionHandler(message) | Write crash-adjacent exception information. |
Log Levels
Public::Debug::ILogger::LogLevel::Verbose
Public::Debug::ILogger::LogLevel::Info
Public::Debug::ILogger::LogLevel::Assertive
Public::Debug::ILogger::LogLevel::Warning
Public::Debug::ILogger::LogLevel::Error
Public::Debug::ILogger::LogLevel::CriticalMacros
LOG_VERBOSE("Verbose details");
LOG_INFO("Game started");
LOG_ASSERT("Manual checkpoint");
LOG_WARNING("Recoverable issue");
LOG_ERROR("Operation failed");
LOG_CRITICAL("Fatal condition");Macros are preferred over calling Log directly in most code.
Crash Dump Providers
<debug/CrashDumpProviders.hpp> exposes additive text providers. Engine/editor systems can register providers when they exist:
Public::Debug::CrashDumpProviders::RegisterSceneStateProvider([] {
return std::string("active scene: outside");
});Collect functions:
CollectEngineState()CollectRendererState()CollectResourceState()CollectSceneState()CollectAssetState()CollectShaderState()CollectInputState()CollectAssertionState()
Platform Diagnostics
| Header | Notable APIs |
|---|---|
<debug/PlatformCrashHandler.hpp> | GetStacktrace, GetMemoryInfo, GetCrashContextReport, GetLoadedModules, GetThreadDump, GetProcessSnapshot, GetMemoryDiagnostics |
<debug/Dx12CrashDiagnostics.hpp> | GetDredReport |
<debug/SystemInfoManager.hpp> | GetOperatingSystemInfo, GetGpus, GetSystemRAM, GetCPUs |
Use platform diagnostics for engine/editor crash reports. Game-level logging usually stays with DebugManager macros.
