Logger System
0.1.3
High-performance C++20 thread-safe logging system with asynchronous capabilities
Loading...
Searching...
No Matches
core.cppm
Go to the documentation of this file.
1
// BSD 3-Clause License
2
// Copyright (c) 2025, 🍀☀🌕🌥 🌊
3
// See the LICENSE file in the project root for full license information.
4
21
export
module
kcenon.logger:core
;
22
23
// Standard library imports
24
import <atomic>;
25
import <chrono>;
26
import <memory>;
27
import <mutex>;
28
import <string>;
29
import <string_view>;
30
import <thread>;
31
import <vector>;
32
33
// Import common_system dependencies
34
import
kcenon.common;
35
36
// Export core classes
37
export
{
38
// Include the actual headers - these will be converted to module implementation
39
// For now, we re-export the header content as module interface
40
41
// Core types and enumerations
42
namespace
logger_system
{
43
enum class
overflow_policy
{
44
block
,
45
drop_oldest
,
46
drop_newest
,
47
grow
48
};
49
50
enum class
health_status
{
51
healthy
,
52
degraded
,
53
unhealthy
,
54
critical
55
};
56
57
enum class
logger_error_code
{
58
success
= 0,
59
invalid_configuration
,
60
writer_not_found
,
61
writer_already_exists
,
62
write_failed
,
63
flush_failed
,
64
buffer_full
,
65
invalid_level
,
66
invalid_pattern
,
67
file_open_failed
,
68
network_error
,
69
encryption_error
,
70
compression_error
,
71
monitoring_failed
,
72
component_not_found
,
73
di_resolution_failed
,
74
health_check_failed
,
75
writer_closed
,
76
unknown_error
77
};
78
}
79
80
// Core namespace exports
81
namespace
kcenon::logger
{
82
// Type aliases - use common::interfaces::log_level
83
using
log_level
= common::interfaces::log_level;
84
using
health_status
=
logger_system::health_status
;
85
using
overflow_policy
=
logger_system::overflow_policy
;
86
87
namespace
core {
91
struct
log_context
{
92
std::string_view
file
{
"unknown"
};
93
int
line
{0};
94
std::string_view
function
{
"unknown"
};
95
std::thread::id
thread_id
{std::this_thread::get_id()};
96
std::chrono::time_point<std::chrono::system_clock>
timestamp
{
97
std::chrono::system_clock::now()};
98
};
99
103
inline
log_context
make_log_context
(std::string_view file,
104
int
line,
105
std::string_view function) {
106
log_context
ctx;
107
ctx.
file
= file;
108
ctx.
line
= line;
109
ctx.
function
= function;
110
ctx.
thread_id
= std::this_thread::get_id();
111
ctx.
timestamp
= std::chrono::system_clock::now();
112
return
ctx;
113
}
114
}
115
116
// Forward declarations for core classes
117
class
logger
;
118
class
log_collector;
119
class
base_writer;
120
class
console_writer;
121
class
file_writer;
122
class
rotating_file_writer;
123
class
network_writer;
124
class
async_writer;
125
class
batch_writer;
126
class
critical_writer;
127
class
composite_writer;
128
129
// Forward declarations for formatters
130
namespace
formatters {
131
class
base_formatter;
132
class
json_formatter;
133
class
timestamp_formatter;
134
}
135
136
// Forward declarations for filters
137
namespace
filters {
138
class
log_filter;
139
}
140
141
// Forward declarations for interfaces
142
class
log_entry;
143
class
log_filter_interface;
144
class
log_formatter_interface;
145
class
log_writer_interface;
146
class
log_sink_interface;
147
class
output_sink_interface;
148
149
// Forward declarations for metrics
150
namespace
metrics {
151
struct
logger_performance_stats;
152
}
153
154
// Forward declarations for security
155
namespace
security {
156
class
signal_manager;
157
class
critical_logger_interface;
158
}
159
160
// Forward declarations for strategies
161
namespace
strategies {
162
class
config_strategy_interface
;
163
class
deployment_strategy
;
164
class
environment_strategy
;
165
class
performance_strategy
;
166
class
composite_strategy
;
167
}
168
169
// Forward declarations for builders
170
class
logger_builder
;
171
class
logger_config_builder
;
172
struct
logger_config
;
173
}
174
}
kcenon::logger::composite_strategy
Combines multiple configuration strategies.
Definition
composite_strategy.h:32
kcenon::logger::config_strategy_interface
Abstract interface for logger configuration strategies.
Definition
config_strategy_interface.h:36
kcenon::logger::deployment_strategy
Configuration strategy based on deployment environment.
Definition
deployment_strategy.h:45
kcenon::logger::environment_strategy
Configuration strategy based on environment variables.
Definition
environment_strategy.h:40
kcenon::logger::logger_builder
Builder pattern for logger construction with validation.
Definition
logger_builder.h:116
kcenon::logger::logger_config_builder
Fluent builder for logger_config.
Definition
logger_config_builder.h:39
kcenon::logger::performance_strategy
Configuration strategy for performance tuning.
Definition
performance_strategy.h:44
kcenon.logger
kcenon::logger::adapters::log_level
common::interfaces::log_level log_level
Definition
logger_adapter.h:26
kcenon::logger::core::make_log_context
log_context make_log_context(std::string_view file, int line, std::string_view function)
Create a log context with source location.
Definition
log_context.h:26
kcenon::logger
Definition
common_logger_adapter.h:29
kcenon::logger::overflow_policy
logger_system::overflow_policy overflow_policy
Definition
logger.h:88
kcenon::logger::health_status
health_status
Health status levels.
Definition
monitoring_interface.h:27
logger_system
Definition
compatibility.h:17
logger_system::overflow_policy
overflow_policy
Overflow policy for when buffers are full.
Definition
logger_types.h:23
logger_system::overflow_policy::drop_newest
@ drop_newest
logger_system::overflow_policy::block
@ block
logger_system::overflow_policy::grow
@ grow
logger_system::overflow_policy::drop_oldest
@ drop_oldest
logger_system::health_status
health_status
Health status enumeration.
Definition
logger_types.h:33
logger_system::health_status::healthy
@ healthy
logger_system::health_status::critical
@ critical
logger_system::health_status::degraded
@ degraded
logger_system::health_status::unhealthy
@ unhealthy
logger_system::logger_error_code
logger_error_code
Logger error codes.
Definition
logger_types.h:43
logger_system::logger_error_code::writer_already_exists
@ writer_already_exists
logger_system::logger_error_code::compression_error
@ compression_error
logger_system::logger_error_code::success
@ success
logger_system::logger_error_code::network_error
@ network_error
logger_system::logger_error_code::flush_failed
@ flush_failed
logger_system::logger_error_code::di_resolution_failed
@ di_resolution_failed
logger_system::logger_error_code::unknown_error
@ unknown_error
logger_system::logger_error_code::monitoring_failed
@ monitoring_failed
logger_system::logger_error_code::encryption_error
@ encryption_error
logger_system::logger_error_code::writer_not_found
@ writer_not_found
logger_system::logger_error_code::write_failed
@ write_failed
logger_system::logger_error_code::invalid_level
@ invalid_level
logger_system::logger_error_code::buffer_full
@ buffer_full
logger_system::logger_error_code::invalid_configuration
@ invalid_configuration
logger_system::logger_error_code::component_not_found
@ component_not_found
logger_system::logger_error_code::writer_closed
@ writer_closed
logger_system::logger_error_code::file_open_failed
@ file_open_failed
logger_system::logger_error_code::invalid_pattern
@ invalid_pattern
logger_system::logger_error_code::health_check_failed
@ health_check_failed
kcenon::logger::core::log_context
Log context containing source location information.
Definition
core.cppm:91
kcenon::logger::core::log_context::file
std::string_view file
Definition
log_context.h:18
kcenon::logger::core::log_context::function
std::string_view function
Definition
log_context.h:20
kcenon::logger::core::log_context::timestamp
std::chrono::time_point< std::chrono::system_clock > timestamp
Definition
log_context.h:22
kcenon::logger::core::log_context::thread_id
std::thread::id thread_id
Definition
log_context.h:21
kcenon::logger::core::log_context::line
int line
Definition
log_context.h:19
kcenon::logger::logger_config
Configuration structure for logger with validation.
Definition
logger_config.h:35
src
modules
core.cppm
Generated by
1.12.0