sp_log.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. #ifndef SP_LOG_H
  2. #define SP_LOG_H
  3. #pragma once
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. #include "refcnt.h"
  8. #include <winpr/wtypes.h>
  9. /* logging */
  10. typedef struct sp_log_client_t sp_log_client_t;
  11. typedef struct sp_log_listener_t sp_log_listener_t;
  12. typedef struct sp_log_listener_mgr_t sp_log_listener_mgr_t;
  13. typedef struct sp_log_daemon_t sp_log_daemon_t;
  14. typedef void (*sp_log_on_log)(void *inst,
  15. int nsub,
  16. u__int64_t *sub,
  17. int client_id,
  18. int log_epid,
  19. int client_instance_id,
  20. u__int64_t log_id,
  21. u__int64_t prev_rsn,
  22. u__int64_t curr_rsn,
  23. int original_rsn_type,
  24. int rsn_depth,
  25. unsigned int log_time,
  26. int log_type,
  27. int log_severity,
  28. int log_sys_error,
  29. int log_usr_error,
  30. int param_cnt,
  31. int *params,
  32. const char *msg,
  33. void *user_data,
  34. const char *bussId,
  35. const char *traceId,
  36. const char *spanId,
  37. const char *parentSpanId);
  38. typedef void (*sp_log_on_flush)(void *inst, int client_id, LPSYSTEMTIME lst, void *user_data);
  39. typedef void (*sp_log_on_timeout_interval)(void *inst, LPSYSTEMTIME lst, void *user_data);
  40. typedef struct sp_iom_t sp_iom_t;
  41. typedef struct sp_svc_t sp_svc_t;
  42. // client
  43. int sp_log_client_create(sp_svc_t *svc, sp_iom_t *iom, sp_log_client_t **p_client);
  44. int sp_log_client_destroy(sp_log_client_t *client);
  45. /*
  46. SPBASE_API int sp_log_client_log(sp_log_client_t *client,
  47. int log_type,
  48. int log_severity,
  49. int log_sys_error,
  50. int log_usr_error,
  51. int param_cnt,
  52. int *params,
  53. const char *format, ...);
  54. */
  55. 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);
  56. 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
  57. , const char *bussId, const char *traceId, const char *spanId, const char *parentSpanId);
  58. /*
  59. SPBASE_API int sp_log_client_logShell(sp_log_client_t* client, int type, int severity,
  60. int sys_error, int usr_error, int param_cnt,
  61. int* params, const char* format, va_list arg);
  62. */
  63. /*
  64. int sp_log_client_logv(sp_log_client_t *client,
  65. int log_type,
  66. int log_severity,
  67. int log_sys_error,
  68. int log_usr_error,
  69. int param_cnt,
  70. int *params,
  71. const char *format,
  72. va_list arg);
  73. */
  74. int sp_log_client_flush(sp_log_client_t *client);
  75. // listener
  76. int sp_log_listener_mgr_create(sp_svc_t *svc, sp_log_on_log on_log, sp_log_listener_mgr_t **p_mgr);
  77. int sp_log_listener_mgr_start(sp_log_listener_mgr_t *mgr);
  78. int sp_log_listener_mgr_stop(sp_log_listener_mgr_t *mgr);
  79. 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);
  80. int sp_log_listener_mgr_unsubscribe(sp_log_listener_mgr_t *mgr, unsigned int listen_id);
  81. DECLARE_REF_COUNT(sp_log_listener_mgr, sp_log_listener_mgr_t)
  82. // daemon
  83. SPBASE_API int sp_log_daemon_create(sp_log_on_log on_log,
  84. sp_log_on_flush on_flush,
  85. sp_log_on_timeout_interval on_timeout_interval,
  86. void *user_data,
  87. sp_svc_t *svc,
  88. sp_log_daemon_t **p_daemon);
  89. SPBASE_API int sp_log_daemon_destroy(sp_log_daemon_t *daemon);
  90. #ifdef __cplusplus
  91. } // extern "C" {
  92. #endif
  93. #endif // SP_LOG_H