#include #include "cmd_console.h" #include "cmd_monitor.h" #include "cmd_remote.h" #include "ulog_api.h" #include "s2j/s2j.h" #define LOGGING_MODULE_NAME "logging" typedef int (*cmd_cb)(cJSON *, int, char **); typedef struct _log_cmd { char cmd[20]; cmd_cb cb; } log_cmd_t; ulog_t *g_log; log_cmd_t g_log_cmd[] = { {"console", conf_console}, {"monitor", conf_monitor}, {"host", conf_remote} }; log_cmd_t *get_cb_by_cmd(const char *cmd) { for (int i = 0; i < (sizeof(g_log_cmd) / sizeof(log_cmd_t)); i++) { if (strcasecmp(cmd, g_log_cmd[i].cmd) == 0) { return &g_log_cmd[i]; } } return NULL; } int main(int argc, char **argv) { int ret = -1; if (argc < 2) { fprintf(stdout, "Parameter too few"); return ret; } g_log = ulog_init(LOGGING_MODULE_NAME, 1); if (g_log == NULL) { fprintf(stderr, "Initiating ulog is failure"); return ret; } log_cmd_t *log_cmd = get_cb_by_cmd(argv[1]); if (log_cmd == NULL) { ULOG_WARNING(g_log, "Not find logging cmd:%s", argv[1]); goto END; } s2j_create_json_obj(json_obj); if(json_obj == NULL) { ULOG_ERR(g_log, "Creating json object is failure"); goto END; } if (log_cmd->cb(json_obj, argc, argv) != 0) { ULOG_ERR(g_log, "Configuring %s is failure", log_cmd->cmd); goto END; } ret = 0; END: if(json_obj != NULL) { cJSON_Delete(json_obj); } ulog_close(g_log); return ret; }