46 explicit StmLogger(UART_HandleTypeDef* uart_handle =
nullptr,
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.
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:94
hf_logger_err_t Error(const char *tag, const char *format,...) noexcept override
Log a message at ERROR level.
Definition StmLogger.cpp:127
hf_logger_err_t Flush() noexcept override
Flush any buffered output.
Definition StmLogger.cpp:221
hf_logger_err_t GetLastError() const noexcept override
Get last error code.
Definition StmLogger.cpp:252
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:114
Backend backend_
Output backend.
Definition StmLogger.h:96
StmLogger(UART_HandleTypeDef *uart_handle=nullptr, Backend backend=Backend::UART_HAL) noexcept
Construct with UART backend (most common)
Definition StmLogger.cpp:52
bool IsHealthy() const noexcept override
Check if logger is healthy.
Definition StmLogger.cpp:250
hf_logger_err_t GetDiagnostics(hf_logger_diagnostics_t &diagnostics) const noexcept override
Get logger diagnostics.
Definition StmLogger.cpp:235
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:181
hf_logger_err_t Initialize(const hf_logger_config_t &config) noexcept override
Initialize the logger.
Definition StmLogger.cpp:72
hf_logger_err_t Warn(const char *tag, const char *format,...) noexcept override
Log a message at WARN level.
Definition StmLogger.cpp:135
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:143
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:245
hf_logger_err_t Debug(const char *tag, const char *format,...) noexcept override
Log a message at DEBUG level.
Definition StmLogger.cpp:151
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:316
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:176
hf_logger_err_t Verbose(const char *tag, const char *format,...) noexcept override
Log a message at VERBOSE level.
Definition StmLogger.cpp:159
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:291
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:167
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:87
hf_logger_err_t GetLastErrorMessage(char *message, hf_u32_t max_length) const noexcept override
Get last error message.
Definition StmLogger.cpp:254
hf_logger_err_t ResetStatistics() noexcept override
Reset statistics.
Definition StmLogger.cpp:240
hf_logger_err_t GetStatistics(hf_logger_statistics_t &statistics) const noexcept override
Get logger statistics.
Definition StmLogger.cpp:230
hf_logger_err_t PrintStatistics(const char *tag=nullptr, bool detailed=true) const noexcept override
Print statistics to log output.
Definition StmLogger.cpp:262
hf_logger_err_t PrintDiagnostics(const char *tag=nullptr, bool detailed=true) const noexcept override
Print diagnostics to log output.
Definition StmLogger.cpp:273
bool initialized_
Init state.
Definition StmLogger.h:98
bool IsInitialized() const noexcept override
Check if logger is initialized.
Definition StmLogger.cpp:92
~StmLogger() noexcept override
Definition StmLogger.cpp:64
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:109
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:119
hf_logger_err_t PrintStatus(const char *tag=nullptr, bool detailed=true) const noexcept override
Print both statistics and diagnostics.
Definition StmLogger.cpp:277
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