|
Logger System 0.1.3
High-performance C++20 thread-safe logging system with asynchronous capabilities
|
doc_id: "LOG-PROJ-004" doc_title: "Logger System Project Structure" 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 Logger System Project Structure.
Last Updated: 2026-02-08 Version: 0.4.0.0
This document provides detailed descriptions of the logger system's directory structure, key files, and module dependencies.
Header files: 93 | Source files: 32 (.cpp) + 4 (.cppm)
The core/ directory contains 18 headers and 9 source files, plus 2 subdirectories (metrics/ and strategies/).
include/kcenon/logger/core/)| File | Purpose |
|---|---|
logger.h | Main logger class with asynchronous processing |
logger_builder.h | Builder pattern for logger configuration with validation |
logger_config.h | Logger configuration data structures |
logger_config_builder.h | Builder for logger configuration objects |
logger_context.h | Logger context management |
logger_registry.h | Global logger registry for named loggers |
log_collector.h | Log collection and aggregation |
log_context.h | Logging context data |
log_context_scope.h | Scoped context management (RAII) |
error_codes.h | Error code definitions and error handling types |
filtered_logger.h | Logger with built-in filtering |
monitoring_integration_detector.h | Auto-detection of monitoring system availability |
thread_integration_detector.h | Auto-detection of thread system availability |
scoped_context_guard.h | RAII guard for context scope |
signal_manager_context.h | Signal manager context for crash handling |
small_string.h | Small string optimization |
structured_log_builder.h | Builder for structured log entries |
unified_log_context.h | Unified log context across subsystems |
core/metrics/ (1 header):
| File | Purpose |
|---|---|
logger_metrics.h | Metrics collection and reporting |
core/strategies/ (5 headers):
| File | Purpose |
|---|---|
config_strategy_interface.h | Abstract interface for configuration strategies |
composite_strategy.h | Composite pattern for combining strategies |
deployment_strategy.h | Deployment-specific configuration |
environment_strategy.h | Environment-based configuration |
performance_strategy.h | Performance-tuned configuration |
src/core/)| File | Purpose |
|---|---|
logger.cpp | Logger core implementation |
logger_context.cpp | Logger context implementation |
logger_metrics.cpp | Metrics collection implementation |
logger_registry.cpp | Logger registry implementation |
log_collector.cpp | Log collector implementation |
log_context_scope.cpp | Context scope implementation |
scoped_context_guard.cpp | Scoped guard implementation |
signal_manager_context.cpp | Signal manager context implementation |
unified_log_context.cpp | Unified log context implementation |
include/kcenon/logger/interfaces/)| File | Purpose |
|---|---|
log_entry.h | Log entry data structure with metadata |
log_filter_interface.h | Abstract filter interface |
log_formatter_interface.h | Abstract formatter interface |
log_sink_interface.h | Abstract sink interface |
log_writer_interface.h | Abstract writer interface |
logger_types.h | Common logger type definitions |
output_sink_interface.h | Abstract output sink interface |
writer_category.h | Writer categorization definitions |
include/kcenon/logger/)| File | Purpose |
|---|---|
compatibility.h | Backward compatibility support |
forward.h | Forward declarations |
Location: include/kcenon/logger/builders/ | src/impl/builders/
Purpose: Fluent builder for constructing writer pipelines
Features:
The writers/ directory contains 18 headers with implementations in src/impl/writers/ (14 .cpp files).
include/kcenon/logger/writers/)| File | Purpose |
|---|---|
base_writer.h | Base class for all writer implementations |
console_writer.h | Colored console output with ANSI support |
file_writer.h | Basic file writing with buffering |
rotating_file_writer.h | Size and time-based file rotation |
network_writer.h | TCP/UDP network logging |
critical_writer.h | Synchronous logging for critical messages |
async_writer.h | Asynchronous writer with queue-based processing |
batch_writer.h | Batched write operations for throughput |
buffered_writer.h | Buffered I/O writer |
composite_writer.h | Fan-out writer dispatching to multiple writers |
decorator_writer_base.h | Base class for writer decorators |
encrypted_writer.h | Encrypted log output |
filtered_writer.h | Writer with built-in log filtering |
formatted_writer.h | Writer with built-in log formatting |
legacy_writer_adapter.h | Adapter for legacy writer interfaces |
otlp_writer.h | OpenTelemetry Protocol (OTLP) log export |
queued_writer_base.h | Base class for queue-backed writers |
thread_safe_writer.h | Thread-safe writer wrapper |
src/impl/writers/)| File | Purpose |
|---|---|
base_writer.cpp | Base writer implementation |
batch_writer.cpp | Batch writer implementation |
buffered_writer.cpp | Buffered writer implementation |
console_writer.cpp | Console writer implementation |
critical_writer.cpp | Critical writer implementation |
decorator_writer_base.cpp | Decorator base implementation |
encrypted_writer.cpp | Encrypted writer implementation |
file_writer.cpp | File writer implementation |
filtered_writer.cpp | Filtered writer implementation |
formatted_writer.cpp | Formatted writer implementation |
network_writer.cpp | Network writer implementation |
otlp_writer.cpp | OTLP writer implementation |
rotating_file_writer.cpp | Rotating file writer implementation |
thread_safe_writer.cpp | Thread-safe writer implementation |
src/impl/async/)| File | Purpose |
|---|---|
async_worker.h / .cpp | Async worker thread management |
batch_processor.h / .cpp | Batch processing engine |
high_performance_async_writer.h / .cpp | High-performance async writer |
jthread_compat.h | jthread compatibility layer |
lockfree_queue.h | Lock-free queue for async operations |
Location: include/kcenon/logger/filters/
Purpose: Unified log filter implementation supporting level-based, regex, and custom function filtering
Internal Implementation: src/impl/filters/log_filter.h
include/kcenon/logger/formatters/)| File | Purpose |
|---|---|
base_formatter.h | Base class for all formatters |
json_formatter.h | Machine-parseable JSON output |
logfmt_formatter.h | Logfmt-style key=value output |
template_formatter.h | Template-based custom formatting |
timestamp_formatter.h | Timestamp formatting utilities |
include/kcenon/logger/factories/)| File | Purpose |
|---|---|
writer_factory.h | Factory for creating writer instances |
filter_factory.h | Factory for creating filter instances |
formatter_factory.h | Factory for creating formatter instances |
include/kcenon/logger/adapters/)| File | Purpose |
|---|---|
common_logger_adapter.h | Adapter for common_system logger interface |
common_system_adapter.h | Adapter for common_system integration |
logger_adapter.h | Generic logger adapter interface |
include/kcenon/logger/backends/)| File | Purpose |
|---|---|
integration_backend.h | Backend for thread_system integration mode |
monitoring_backend.h | Backend for monitoring_system integration |
standalone_backend.h | Backend for standalone operation mode |
include/kcenon/logger/sinks/)| File | Purpose |
|---|---|
console_sink.h | Console output sink |
file_sink.h | File output sink |
include/kcenon/logger/integration/)| File | Purpose |
|---|---|
executor_integration.h | Executor-based integration |
standalone_executor.h | Standalone executor for independent operation |
thread_system_integration.h | Thread system integration layer |
src/integration/)| File | Purpose |
|---|---|
executor_integration.cpp | Executor integration implementation |
standalone_executor.cpp | Standalone executor implementation |
thread_system_integration.cpp | Thread system integration implementation |
include/kcenon/logger/sampling/)| File | Purpose |
|---|---|
log_sampler.h | Log sampling engine |
sampling_config.h | Sampling configuration and policies |
src/sampling/)| File | Purpose |
|---|---|
log_sampler.cpp | Log sampler implementation |
include/kcenon/logger/utils/)| File | Purpose |
|---|---|
error_handling_utils.h | Error handling helper functions |
file_utils.h | File system utility functions |
string_utils.h | String manipulation utilities |
time_utils.h | Time and timestamp utilities |
include/kcenon/logger/security/)| File | Purpose |
|---|---|
secure_key_storage.h | RAII-based encryption key management (OpenSSL) |
path_validator.h | Path validation and traversal prevention |
log_sanitizer.h | Sensitive data sanitization (PII masking) |
audit_logger.h | Audit trail logging for compliance |
signal_manager_interface.h | Abstract signal manager interface |
signal_manager.h | Signal and crash handler management |
src/security/)| File | Purpose |
|---|---|
signal_manager.cpp | Signal manager implementation |
include/kcenon/logger/di/)| File | Purpose |
|---|---|
service_registration.h | DI service registration utilities |
DI Integration: Uses common_system::di::service_container for dependency injection. See service_registration.h for logger service registration utilities.
include/kcenon/logger/otlp/)| File | Purpose |
|---|---|
otel_context.h | OpenTelemetry context integration |
include/kcenon/logger/routing/)| File | Purpose |
|---|---|
log_router.h | Log routing and dispatching |
include/kcenon/logger/safety/)| File | Purpose |
|---|---|
crash_safe_logger.h | Crash-safe logging mechanisms |
include/kcenon/logger/analysis/)| File | Purpose |
|---|---|
log_analyzer.h | Log analysis engine |
realtime_log_analyzer.h | Real-time log analysis |
include/kcenon/logger/structured/)| File | Purpose |
|---|---|
structured_logger.h | Structured (JSON-based) logging |
include/kcenon/logger/server/)| File | Purpose |
|---|---|
log_server.h | Network log server |
src/impl/)The src/impl/ directory contains internal headers and implementations not part of the public API:
| Subdirectory | Contents |
|---|---|
memory/ | object_pool.h, log_entry_pool.h - Memory pool implementations |
monitoring/ | basic_monitor.h, monitoring_interface.h, thread_system_monitor_adapter.h |
Location: tests/unit/
Structure:
Testing Framework: Google Test (GTest) Coverage Target: 80%+
Location: tests/integration/
Focus Areas:
Location: tests/benchmarks/
Benchmark Types:
Location: CMakeLists.txt
Key Options:
Location: cmake/
Key Files:
LoggerSystemConfig.cmake.in: Package configuration templateFindThreadSystem.cmake: Thread system finderCompilerWarnings.cmake: Compiler warning flagsSanitizers.cmake: Sanitizer configurationCodeCoverage.cmake: Coverage reportingRequired:
Optional:
*_interface.h (e.g., log_writer_interface.h)*.h (e.g., logger.h, file_writer.h)*_builder.h (e.g., writer_builder.h, logger_builder.h)*_factory.h (e.g., writer_factory.h)*_adapter.h (e.g., logger_adapter.h)*_strategy.h (e.g., deployment_strategy.h)src/core/*.cpp (core logic)src/impl/**/*.cpp (private implementation details)*_test.cpp (e.g., logger_test.cpp)*_benchmark.cpp (e.g., throughput_benchmark.cpp)*.md (English) or *.kr.md (Korean)API_REFERENCE.mdGUIDE_NAME.md in docs/guides/