#ifndef SP_LOG_H #define SP_LOG_H #pragma once #ifdef __cplusplus extern "C" { #endif #include "refcnt.h" #include /* logging */ typedef struct sp_log_client_t sp_log_client_t; typedef struct sp_log_listener_t sp_log_listener_t; typedef struct sp_log_listener_mgr_t sp_log_listener_mgr_t; typedef struct sp_log_daemon_t sp_log_daemon_t; typedef void (*sp_log_on_log)(void *inst, int nsub, u__int64_t *sub, int client_id, int log_epid, int client_instance_id, u__int64_t log_id, u__int64_t prev_rsn, u__int64_t curr_rsn, int original_rsn_type, int rsn_depth, unsigned int log_time, int log_type, int log_severity, int log_sys_error, int log_usr_error, int param_cnt, int *params, const char *msg, void *user_data, const char *bussId, const char *traceId, const char *spanId, const char *parentSpanId); typedef void (*sp_log_on_flush)(void *inst, int client_id, LPSYSTEMTIME lst, void *user_data); typedef void (*sp_log_on_timeout_interval)(void *inst, LPSYSTEMTIME lst, void *user_data); typedef struct sp_iom_t sp_iom_t; typedef struct sp_svc_t sp_svc_t; // client int sp_log_client_create(sp_svc_t *svc, sp_iom_t *iom, sp_log_client_t **p_client); int sp_log_client_destroy(sp_log_client_t *client); /* SPBASE_API int sp_log_client_log(sp_log_client_t *client, int log_type, int log_severity, int log_sys_error, int log_usr_error, int param_cnt, int *params, const char *format, ...); */ SPBASE_API int sp_log_client_logEx(sp_log_client_t* client, int type, int severity, int sys_error, int usr_error, int param_cnt, int* params, const char* msg, int len); SPBASE_API int sp_log_client_logWithLink(sp_log_client_t* client, int type, int severity, int sys_error, int usr_error, int param_cnt, int* params, const char* msg, int len , const char *bussId, const char *traceId, const char *spanId, const char *parentSpanId); /* SPBASE_API int sp_log_client_logShell(sp_log_client_t* client, int type, int severity, int sys_error, int usr_error, int param_cnt, int* params, const char* format, va_list arg); */ /* int sp_log_client_logv(sp_log_client_t *client, int log_type, int log_severity, int log_sys_error, int log_usr_error, int param_cnt, int *params, const char *format, va_list arg); */ int sp_log_client_flush(sp_log_client_t *client); // listener int sp_log_listener_mgr_create(sp_svc_t *svc, sp_log_on_log on_log, sp_log_listener_mgr_t **p_mgr); int sp_log_listener_mgr_start(sp_log_listener_mgr_t *mgr); int sp_log_listener_mgr_stop(sp_log_listener_mgr_t *mgr); int sp_log_listener_mgr_subscribe(sp_log_listener_mgr_t *mgr, unsigned int *listen_id, void *key, int ignore_msg_body, int log_type, int ent_id, int severity_filter, int sys_code, int user_code); int sp_log_listener_mgr_unsubscribe(sp_log_listener_mgr_t *mgr, unsigned int listen_id); DECLARE_REF_COUNT(sp_log_listener_mgr, sp_log_listener_mgr_t) // daemon SPBASE_API int sp_log_daemon_create(sp_log_on_log on_log, sp_log_on_flush on_flush, sp_log_on_timeout_interval on_timeout_interval, void *user_data, sp_svc_t *svc, sp_log_daemon_t **p_daemon); SPBASE_API int sp_log_daemon_destroy(sp_log_daemon_t *daemon); #ifdef __cplusplus } // extern "C" { #endif #endif // SP_LOG_H