🚨 BREAKING CHANGES: Complete API redesign since v6.5.0
New type system, unified naming, and simplified build configuration. These notes cover only part of the changes.
🌟 Added
- Output Management System — unified destination control replacing callbacks
- Custom Log Levels — define your own schemes
- Static Configuration Header — central file for all build-time options
- Optional Warning on Disabled features
- Disabling the library fully using a compilation flag (e.g., for production releases)
- Extensions — modular, copy-paste-ready examples of extending functionality through the public API.
- Syslog levels (RFC 5424)
- Thread-safe locks for CMSIS-RTOS2, FreeRTOS, POSIX, ThreadX, Windows
- Generic Logger Interface (integration layer for other libraries)
- Microlog 6 compatibility layer for easy migration
- Quality Assurance — > 85 % line and > 90 % function test coverage
🪄 Changed
- Unified naming:
- Functions →
ulog_<feature>_<method>()ulog_add_fp()→ulog_output_add_file()ulog_set_lock()→ulog_lock_set_fn()
- Types →
snake_caseulog_Event→ulog_eventulog_LogFn→ulog_log_fn
- Functions →
- Build configuration moved in-source with
ULOG_BUILD_*pattern
❌ Removed, 🐞 Fixed
- Removed emoji log levels 😭
- Removed
log_*macro aliases — useulog_*directly - Numerous fixes and stability improvements
📄 Full details: CHANGELOG.md