|
Logger System 0.1.3
High-performance C++20 thread-safe logging system with asynchronous capabilities
|
doc_id: "LOG-ARCH-003" doc_title: "Dependency Architecture" doc_version: "1.0.0" doc_date: "2026-04-04" doc_status: "Released" project: "logger_system"
SSOT: This document is the single source of truth for Dependency Architecture.
logger_system follows a strict unidirectional dependency model using a tiered architecture. The bidirectional dependency risk identified in Issue #252 has been resolved.
ILogger, IExecutor) and types (Result<T>). No dependencies on higher tiers.ILogger for logging via dependency injection.LOGGER_USE_THREAD_SYSTEM=OFF by default).| Interface | Defined In | Purpose |
|---|---|---|
ILogger | common_system | Allows thread_system to log without depending on logger_system |
IExecutor | common_system | Allows logger_system to use thread pools without tight coupling |
Result<T> | common_system | Shared error handling type across all tiers |
Both systems could optionally depend on each other:
logger_system -> thread_system via LOGGER_USE_THREAD_SYSTEM=ONthread_system -> logger_system via BUILD_WITH_LOGGER_SYSTEM=ONlogger_system -> thread_system: Optional, off by default. Clean unidirectional dependency.thread_system -> logger_system: Deprecated via thread_system#336. BUILD_WITH_LOGGER_SYSTEM is off by default and scheduled for removal in v0.5.0.0. thread_system now uses ILogger dependency injection from common_system instead.A transitional guard in CMakeLists.txt warns if both flags are enabled simultaneously. This guard will be removed once thread_system#336 is complete and BUILD_WITH_LOGGER_SYSTEM is removed.
If you are using BUILD_WITH_LOGGER_SYSTEM=ON in thread_system:
BUILD_WITH_LOGGER_SYSTEM=OFFILogger implementation at runtime instead: | Milestone | Status | Description |
|---|---|---|
| Issue #252 | Resolved | Bidirectional risk identified and analyzed |
| Issue #336 | In Progress | thread_system deprecates BUILD_WITH_LOGGER_SYSTEM |
| v0.5.0.0 | Planned | BUILD_WITH_LOGGER_SYSTEM removed from thread_system |
| Post-v0.5.0.0 | Planned | CMake bidirectional guard can be removed from logger_system |