v0.5.0
Vigil v0.5.0
Key Highlights
- Lifecycle Hooks and Event System: Added
LogHooksandHooksRegistryfor thread-safe event listening (messages, level shifts, flush actions) with deadlock-safe callback dispatching. - Extended Scope Control: Introduced manual block-scoping macros (
VIGIL_SCOPE_BEGIN/VIGIL_SCOPE_END) and explicit log-level overrides forScopedLogger. - Configurable Output Directories: Integrated explicit
LogDirproperties across configurations with automatic directory resolution usingstd::filesystem. - Cross-Platform Debugger Utilities: Added
IsDebuggerAttached()and conditional breakpoint macroVIGIL_DEBUGBREAK_IF_ATTACHED()across Windows, Linux, and macOS. - Unified Stack Traces: Consolidated platform backends with inline frame expansion via
DbgHelp(Windows) andlibbacktrace(POSIX), along with cleaned demangled symbol formatting.
Core Improvements
- Safety Assertions: Added
LogSysteminitialization checks for debug builds and automatic instantiation for non-existent named loggers inVIGIL_LOG_NAMED. - Path Normalization: Standardized path separators to ensure consistent cross-platform location formatting.
- Modular Refactoring: Reorganized example suites (
logger_example,scoped_example,assert_example) into isolated demo functions with streamlined CLI argument dispatching. - Build System Updates: Unified internal headers, removed obsolete header files, added the
hooks_exampletarget, and ensured C++23 standard compliance.
Full Changelog: v0.4.1...v0.5.0