23#if __has_include(<source_location>)
24 #include <source_location>
25 #define KCENON_MODULE_HAS_SOURCE_LOCATION 1
27 #define KCENON_MODULE_HAS_SOURCE_LOCATION 0
33import :interfaces.logger;
44inline void log_trace(std::shared_ptr<interfaces::ILogger> logger, std::string_view message) {
53inline void log_debug(std::shared_ptr<interfaces::ILogger> logger, std::string_view message) {
62inline void log_info(std::shared_ptr<interfaces::ILogger> logger, std::string_view message) {
71inline void log_warning(std::shared_ptr<interfaces::ILogger> logger, std::string_view message) {
80inline void log_error(std::shared_ptr<interfaces::ILogger> logger, std::string_view message) {
89inline void log_critical(std::shared_ptr<interfaces::ILogger> logger, std::string_view message) {
122 if (!entry.
file.empty()) {
123 std::cout <<
" (" << entry.
file <<
":" << entry.
line <<
")";
125 std::cout << std::endl;
130 return static_cast<int>(level) >=
static_cast<int>(
level_);
156 return std::make_shared<ConsoleLogger>(level);
Result type for error handling with member function support.
Standard interface for logging implementations.
Simple console logger implementation.
ConsoleLogger(interfaces::log_level level=interfaces::log_level::info)
interfaces::log_level level_
VoidResult set_level(interfaces::log_level level) override
Set the minimum log level.
VoidResult log(interfaces::log_level level, const std::string &message) override
Log a message with specified level.
bool is_enabled(interfaces::log_level level) const override
Check if logging is enabled for the specified level.
VoidResult log(const interfaces::log_entry &entry) override
Log a structured entry.
VoidResult flush() override
Flush any buffered log messages.
interfaces::log_level get_level() const override
Get the current minimum log level.
std::string to_string(log_level level)
Convert log level to string.
log_level
Standard log levels.
VoidResult log_warning(std::string_view message, const source_location &loc=source_location::current())
Log a warning-level message.
VoidResult log_debug(std::string_view message, const source_location &loc=source_location::current())
Log a debug-level message.
VoidResult log_critical(std::string_view message, const source_location &loc=source_location::current())
Log a critical-level message.
VoidResult log_error(std::string_view message, const source_location &loc=source_location::current())
Log an error-level message.
std::shared_ptr< interfaces::ILogger > make_console_logger(interfaces::log_level level=interfaces::log_level::info)
Create a console logger.
VoidResult log_trace(std::string_view message, const source_location &loc=source_location::current())
Log a trace-level message.
VoidResult log_info(std::string_view message, const source_location &loc=source_location::current())
Log an info-level message.
VoidResult ok()
Create a successful void result.
Standard log entry structure.