日志

SIFLI SDK使用RT-Thread的ulog作为日志(log)输出机制。作为简洁易用的日志输出组件,ulog支持 - 不同级别的输出日志级别 - 按模块进行输出 - 线程安全并可以选择同步或异步的日志输出方式。 - 配置输出格式 - 配置不同的输出后端,可以是UART或者flash。

具体的设计架构及实现方式,可以参考ulog日志

ulog配置

ulog可以在menuconfig里面进行众多选项的配置,除了日志输出级别,同步异步等方式外,还可以自定义输出格式。

ulog使用示例


// Define module name for output level and format.
#define LOG_TAG  "app"
// Define the module minimum output level as info
#define LOG_LVL  LOG_LVL_INFO

void app_log_demo(void)
{
	uing8_t hex_data = {0x01, 0x02, 0x03, 0x04, 0x05, ... ,0xFF};
	
	// All logs are belongs to module 'app'
	LOG_D("Debug log"); // Output debug level log, but it could not output due to module 'app' set the log level as info.
	LOG_I("Info log");  // Output info level log
	LOG_W("Warning log"); // Output warning level log
	LOG_E("Error log"); // Output error level log
	LOG_HEX("hex_data", 16, hex_data, sizeof(hex_data)); // Output hex data
}