67 const
char* format, ...) noexcept override;
69 const
char* format, va_list args) noexcept override;
72 const
char* format, ...) noexcept override;
94 const
char* format, va_list args) noexcept;
Unified logging base class for all logging implementations.
hf_logger_err_t
Definition BaseLogger.h:88
uint32_t hf_u32_t
Platform-agnostic 32-bit unsigned integer type.
Definition HardwareTypes.h:52
uint8_t hf_u8_t
Platform-agnostic 8-bit unsigned integer type.
Definition HardwareTypes.h:40
STM32 platform-specific type definitions for hardware abstraction.
struct __UART_HandleTypeDef UART_HandleTypeDef
Definition StmUart.h:22
Base logger abstract class.
Definition BaseLogger.h:358
STM32 Logger — production-quality logging over UART/SWO/printf.
Definition StmLogger.h:36
bool EnsureInitialized() noexcept override
Ensure logger is initialized (lazy initialization)
Definition StmLogger.cpp:100
hf_logger_err_t Error(const char *tag, const char *format,...) noexcept override
Log a message at ERROR level.
Definition StmLogger.cpp:133
hf_logger_err_t Flush() noexcept override
Flush any buffered output.
Definition StmLogger.cpp:227
hf_logger_err_t GetLastError() const noexcept override
Get last error code.
Definition StmLogger.cpp:258
hf_logger_err_t GetLogLevel(const char *tag, hf_log_level_t &level) const noexcept override
Get log level for a specific tag.
Definition StmLogger.cpp:120
Backend backend_
Output backend.
Definition StmLogger.h:96
bool IsHealthy() const noexcept override
Check if logger is healthy.
Definition StmLogger.cpp:256
hf_logger_err_t GetDiagnostics(hf_logger_diagnostics_t &diagnostics) const noexcept override
Get logger diagnostics.
Definition StmLogger.cpp:241
hf_logger_err_t LogWithLocation(hf_log_level_t level, const char *tag, const char *file, hf_u32_t line, const char *function, const char *format,...) noexcept override
Log a message with file and line information.
Definition StmLogger.cpp:187
hf_logger_err_t Initialize(const hf_logger_config_t &config) noexcept override
Initialize the logger.
Definition StmLogger.cpp:78
hf_logger_err_t Warn(const char *tag, const char *format,...) noexcept override
Log a message at WARN level.
Definition StmLogger.cpp:141
hf_logger_diagnostics_t diagnostics_
Diagnostics.
Definition StmLogger.h:101
hf_logger_err_t Info(const char *tag, const char *format,...) noexcept override
Log a message at INFO level.
Definition StmLogger.cpp:149
Backend
Output backend selection.
Definition StmLogger.h:39
@ UART_HAL
Use HAL_UART_Transmit.
@ PRINTF
Use printf / _write.
@ SWO_ITM
Use ITM_SendChar (SWO trace)
hf_logger_err_t ResetDiagnostics() noexcept override
Reset diagnostics.
Definition StmLogger.cpp:251
hf_logger_err_t Debug(const char *tag, const char *format,...) noexcept override
Log a message at DEBUG level.
Definition StmLogger.cpp:157
hf_logger_err_t FormatAndOutput(hf_log_level_t level, const char *tag, const char *format, va_list args) noexcept
Format and output a log message.
Definition StmLogger.cpp:322
hf_logger_err_t LogV(hf_log_level_t level, const char *tag, const char *format, va_list args) noexcept override
Log a message with va_list (for internal use)
Definition StmLogger.cpp:182
hf_logger_err_t Verbose(const char *tag, const char *format,...) noexcept override
Log a message at VERBOSE level.
Definition StmLogger.cpp:165
char format_buffer_[256]
Formatting scratch buffer.
Definition StmLogger.h:103
hf_log_level_t global_level_
Current global log level.
Definition StmLogger.h:99
hf_logger_statistics_t statistics_
Statistics.
Definition StmLogger.h:100
UART_HandleTypeDef * uart_handle_
UART HAL handle (for UART backend)
Definition StmLogger.h:97
void OutputString(const char *str, hf_u32_t length) noexcept
Write formatted string to output backend.
Definition StmLogger.cpp:297
hf_logger_err_t Log(hf_log_level_t level, const char *tag, const char *format,...) noexcept override
Log a message at specified level.
Definition StmLogger.cpp:173
hf_logger_err_t last_error_
Last error code.
Definition StmLogger.h:102
hf_logger_err_t Deinitialize() noexcept override
Deinitialize the logger.
Definition StmLogger.cpp:93
hf_logger_err_t GetLastErrorMessage(char *message, hf_u32_t max_length) const noexcept override
Get last error message.
Definition StmLogger.cpp:260
hf_logger_err_t ResetStatistics() noexcept override
Reset statistics.
Definition StmLogger.cpp:246
hf_logger_err_t GetStatistics(hf_logger_statistics_t &statistics) const noexcept override
Get logger statistics.
Definition StmLogger.cpp:236
hf_logger_err_t PrintStatistics(const char *tag=nullptr, bool detailed=true) const noexcept override
Print statistics to log output.
Definition StmLogger.cpp:268
hf_logger_err_t PrintDiagnostics(const char *tag=nullptr, bool detailed=true) const noexcept override
Print diagnostics to log output.
Definition StmLogger.cpp:279
bool initialized_
Init state.
Definition StmLogger.h:98
bool IsInitialized() const noexcept override
Check if logger is initialized.
Definition StmLogger.cpp:98
~StmLogger() noexcept override
Definition StmLogger.cpp:70
hf_logger_err_t SetLogLevel(const char *tag, hf_log_level_t level) noexcept override
Set log level for a specific tag.
Definition StmLogger.cpp:115
bool IsLevelEnabled(hf_log_level_t level, const char *tag=nullptr) const noexcept override
Check if a log level is enabled for a tag.
Definition StmLogger.cpp:125
hf_logger_err_t PrintStatus(const char *tag=nullptr, bool detailed=true) const noexcept override
Print both statistics and diagnostics.
Definition StmLogger.cpp:283
hf_log_level_t
Log levels enumeration.
Definition BaseLogger.h:95
Logger configuration structure.
Definition BaseLogger.h:154
Logger diagnostics structure.
Definition BaseLogger.h:187
Logger statistics structure.
Definition BaseLogger.h:170