/* * Copyright (c) 2006-2021, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * 2023-06-16 murmur the first version */ #include <..\rt-thread\components\utilities\ulog\backend\ulog_be.h> /* * 后端注册表 */ struct _log_file { const char *name; //文件名 ulog_backend_t backend; struct ulog_file_be *file_be; const char *dir_path; //保存路径 rt_size_t max_num; //保存最大文件数量 rt_size_t max_size; //保存最大文件大小 rt_size_t buf_size; //文件保存缓存大小 }; /* * 文件后端标识 */ typedef enum { console_id, sys_id, motion_id, }ulog_file_be_name; #define ROOT_PATH "/sd/syslog" //设置保存路径 #define FILE_SIZE 512 * 1024 //设置单个文件大小 #define BUFF_SIZE 512 //设备缓存区大小 static struct ulog_backend sys_log_backend; static struct ulog_file_be sys_log_file; static struct _log_file table[] = { {"motion" ,&sys_log_backend,&sys_log_file,ROOT_PATH,5,FILE_SIZE,BUFF_SIZE}, {"23-sys" ,&sys_log_backend,&sys_log_file,ROOT_PATH,10,FILE_SIZE,BUFF_SIZE}, }; /* Private function prototypes -----------------------------------------------*/ /** * @brief 系统日志文件后端初始化. * @param None. * @retval None. * @note None. */ void sys_log_file_backend_init(void) { struct ulog_file_be *file_be = &sys_log_file; uint8_t id = sys_id; file_be->parent = sys_log_backend; ulog_file_backend_init( file_be, table[id].name, table[id].dir_path, table[id].max_num, table[id].max_size, table[id].buf_size); ulog_file_backend_enable(file_be); //必须使能才能有效 } MSH_CMD_EXPORT(sys_log_file_backend_init,log2file); //INIT_COMPONENT_EXPORT(sys_log_file_backend_init);