log_factory.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #ifndef __LOGFACTORY_H__
  2. #define __LOGFACTORY_H__
  3. #pragma once
  4. #include "list.h"
  5. #ifdef __cplusplus
  6. extern "C" {
  7. #endif
  8. typedef struct logfactory_t
  9. {
  10. struct list_head entry;
  11. char* name;
  12. void (*destroy)(void* self);
  13. void* (*create_log)(void* self, const char* inst);
  14. int (*set_log_param)(void* self, void* log, const char* key, const char* value);
  15. int (*init_log)(void* self, void* log);
  16. int (*term_log)(void* self, void* log);
  17. void (*destroy_log)(void* self, void* log);
  18. int (*record_log)(void* self, void* log, int level, unsigned long ts_low, unsigned long ts_high, const char* s, int n);
  19. }logfactory_t;
  20. static __inline void logfactory_destroy(void* self)
  21. {
  22. logfactory_t* fac = (logfactory_t*)self;
  23. (*fac->destroy)(self);
  24. }
  25. static __inline void* logfactory_create_log(void* self, const char* inst)
  26. {
  27. logfactory_t* fac = (logfactory_t*)self;
  28. return (*fac->create_log)(self, inst);
  29. }
  30. static __inline int logfactory_set_log_param(void* self, void* log, const char* key, const char* value)
  31. {
  32. logfactory_t* fac = (logfactory_t*)self;
  33. return (*fac->set_log_param)(self, log, key, value);
  34. }
  35. static __inline int logfactory_init_log(void* self, void* log)
  36. {
  37. logfactory_t* fac = (logfactory_t*)self;
  38. return (*fac->init_log)(self, log);
  39. }
  40. static __inline int logfactory_term_log(void* self, void* log)
  41. {
  42. logfactory_t* fac = (logfactory_t*)self;
  43. return (*fac->term_log)(self, log);
  44. }
  45. static __inline void logfactory_destroy_log(void* self, void* log)
  46. {
  47. logfactory_t* fac = (logfactory_t*)self;
  48. (*fac->destroy_log)(self, log);
  49. }
  50. static __inline int logfactory_log_record(void* self, void* log, int level, unsigned long ts_low, unsigned long ts_high, const char* s, int n)
  51. {
  52. logfactory_t* fac = (logfactory_t*)self;
  53. return (*fac->record_log)(self, log, level, ts_low, ts_high, s, n);
  54. }
  55. const char* log_level2str(int level);
  56. #ifdef __cplusplus
  57. }
  58. #endif
  59. #endif //__LOGFACTORY_H__