123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198 |
- #ifndef RVC_VENDOR_LOG4UPLOAD_H_
- #define RVC_VENDOR_LOG4UPLOAD_H_
- #pragma once
- #include <stdint.h>
- #include "log4vendor.h"
- #include "log_define.h"
- #if defined(_MSC_VER)
- #include <Windows.h>
- typedef struct {
- HMODULE handle;
- char* errmsg;
- } log4vendor_lib_t;
- #else
- typedef struct
- {
- void* handle;
- char* errmsg;
- } log4vendor_lib_t;
- #endif
- struct log_producer_config
- {
- //守护上传:代替其他实体上传日志
- int enableGuarder;
- //天眼要求字段
- char* skyeyeServName;
- char* skyeyeCmptId;
- char* skyeyeCmptName;
- char* skyeyeTerminalNo;
- char* skyeyeVersion;
- char* skyeyeSn;
- char* skyeyeItem;
- char* skyeyeEntityName;
- //统一日志要求字段
- char* unitedAppName;
- char* unitedVersion;
- int unitedNeedArchived;
- char* unitedDeployUnitId;
- char* unitedServiceUnitId;
- char* endpoint;
- char* skyeye_user_topic;
- char* skyeye_sys_topic;
- char* beidou_topic;
- char* business_user_topic;
- char* business_sys_topic;
- char* vtmweb_topic;
- int32_t sendThreadCount;
- int32_t logCountPerPackage;
- int32_t logBytesPerPackage;
- int32_t maxBufferBytes;
- int32_t connectTimeoutSec;
- int32_t sendTimeoutSec;
- int32_t destroyFlusherWaitTimeoutSec;
- int32_t destroySenderWaitTimeoutSec;
- int32_t compressType; // 0 no compress, 1 lz4
- int32_t ntpTimeOffset;
- int using_https; // 0 http, 1 https
- // for persistent feature
- int32_t usePersistent; // 0 no, 1 yes
- char* persistentFilePath;
- int32_t maxPersistentLogCount;
- int32_t usePersistentEncrypt; // 0 no, 1 yes
- char* PersistentEncryptPassword;
- int32_t debugMode;
- } ;
- struct log_producer_client
- {
- volatile int32_t valid_flag;
- int32_t log_level;
- void* private_data;
- } ;
- typedef int log_producer_result;
- typedef void(*pfn_on_log_producer_send_done)(log_producer_result, int, int, const char*, const char*, const unsigned char*, void*);
- typedef log_producer_config* (*pfn_create_log_producer_config)();
- typedef void(*pfn_log_producer_config_set_packet_log_bytes)(log_producer_config*, int32_t);
- typedef void(*pfn_log_producer_config_set_packet_log_count)(log_producer_config*, int32_t);
- typedef void(*pfn_log_producer_config_set_max_buffer_limit)(log_producer_config*, int64_t);
- typedef void(*pfn_log_producer_config_set_send_thread_count)(log_producer_config*, int32_t);
- typedef void(*pfn_log_producer_config_set_persistent_max_log_count)(log_producer_config*, int32_t);
- typedef void(*pfn_log_producer_config_set_skyeye_servname)(log_producer_config*, char*);
- typedef void(*pfn_log_producer_config_set_skyeye_cmptId)(log_producer_config*, char*);
- typedef void(*pfn_log_producer_config_set_skyeye_cmptname)(log_producer_config*, char*);
- typedef void(*pfn_log_producer_config_set_skyeye_version)(log_producer_config*, char*);
- typedef void(*pfn_log_producer_config_set_persistent)(log_producer_config*, int32_t);
- typedef void(*pfn_log_producer_config_set_skyeye_entityname)(log_producer_config*, char*);
- typedef void(*pfn_log_producer_config_set_skyeye_item)(log_producer_config*, char*);
- typedef void(*pfn_log_producer_config_set_persistent_file_path)(log_producer_config*, const char*);
- typedef void(*pfn_log_producer_config_set_united_appname)(log_producer_config*, char*);
- typedef void(*pfn_log_producer_config_set_united_version)(log_producer_config*, char*);
- typedef void(*pfn_log_producer_config_set_united_needArchived)(log_producer_config*, int);
- typedef void(*pfn_log_producer_config_set_united_deployUnitId)(log_producer_config*, char*);
- typedef void(*pfn_log_producer_config_set_united_serviceUnitId)(log_producer_config*, char*);
- typedef log_producer_client* (*pfn_create_log_producer_client)(log_producer_config*, pfn_on_log_producer_send_done, void*);
- typedef log_producer_result(*pfn_log_producer_client_add_log)(log_producer_client*, log_item*, int, long);
- typedef void(*pfn_log_producer_config_switch_debug_mode)(log_producer_config*, int32_t);
- class upload_helper
- {
- public:
- upload_helper() :_initialized(false)
- , pinst_on_log_producer_send_done(nullptr)
- , pinst_create_log_producer_config(nullptr)
- , pinst_log_producer_config_set_packet_log_bytes(nullptr)
- , pinst_log_producer_config_set_packet_log_count(nullptr)
- , pinst_log_producer_config_set_max_buffer_limit(nullptr)
- , pinst_log_producer_config_set_send_thread_count(nullptr)
- , pinst_log_producer_config_set_persistent_max_log_count(nullptr)
- , pinst_log_producer_config_set_skyeye_servname(nullptr)
- , pinst_log_producer_config_set_skyeye_cmptId(nullptr)
- , pinst_log_producer_config_set_skyeye_cmptname(nullptr)
- , pinst_log_producer_config_set_skyeye_version(nullptr)
- , pinst_log_producer_config_set_persistent(nullptr)
- , pinst_log_producer_config_set_skyeye_entityname(nullptr)
- , pinst_log_producer_config_set_skyeye_item(nullptr)
- , pinst_log_producer_config_set_persistent_file_path(nullptr)
- , pinst_log_producer_config_set_united_appname(nullptr)
- , pinst_log_producer_config_set_united_version(nullptr)
- , pinst_log_producer_config_set_united_needArchived(nullptr)
- , pinst_log_producer_config_set_united_deployUnitId(nullptr)
- , pinst_log_producer_config_set_united_serviceUnitId(nullptr)
- , pinst_create_log_producer_client(nullptr)
- , pinst_log_producer_client_add_log(nullptr)
- , pinst_log_producer_config_switch_debug_mode(nullptr)
- , _client(nullptr)
- {
-
- }
- ~upload_helper() {
- unload_logsdk();
- }
- bool initialize(const cmb::log_init_config& config);
- bool is_initialized() const {
- return _initialized;
- }
- void unitialize() { if(is_initialized()) unload_logsdk(); }
- private:
- int load_logsdk();
- int unload_logsdk();
- public:
- pfn_log_producer_client_add_log pinst_log_producer_client_add_log;
- log_producer_client* _client;
- private:
- bool _initialized;
- log4vendor_lib_t m_lib;
- pfn_on_log_producer_send_done pinst_on_log_producer_send_done;
- pfn_create_log_producer_config pinst_create_log_producer_config;
- pfn_log_producer_config_set_packet_log_bytes pinst_log_producer_config_set_packet_log_bytes;
- pfn_log_producer_config_set_packet_log_count pinst_log_producer_config_set_packet_log_count;
- pfn_log_producer_config_set_max_buffer_limit pinst_log_producer_config_set_max_buffer_limit;
- pfn_log_producer_config_set_send_thread_count pinst_log_producer_config_set_send_thread_count;
- pfn_log_producer_config_set_persistent_max_log_count pinst_log_producer_config_set_persistent_max_log_count;
- pfn_log_producer_config_set_skyeye_servname pinst_log_producer_config_set_skyeye_servname;
- pfn_log_producer_config_set_skyeye_cmptId pinst_log_producer_config_set_skyeye_cmptId;
- pfn_log_producer_config_set_skyeye_cmptname pinst_log_producer_config_set_skyeye_cmptname;
- pfn_log_producer_config_set_skyeye_version pinst_log_producer_config_set_skyeye_version;
- pfn_log_producer_config_set_persistent pinst_log_producer_config_set_persistent;
- pfn_log_producer_config_set_skyeye_entityname pinst_log_producer_config_set_skyeye_entityname;
- pfn_log_producer_config_set_skyeye_item pinst_log_producer_config_set_skyeye_item;
- pfn_log_producer_config_set_persistent_file_path pinst_log_producer_config_set_persistent_file_path;
- pfn_log_producer_config_set_united_appname pinst_log_producer_config_set_united_appname;
- pfn_log_producer_config_set_united_version pinst_log_producer_config_set_united_version;
- pfn_log_producer_config_set_united_needArchived pinst_log_producer_config_set_united_needArchived;
- pfn_log_producer_config_set_united_deployUnitId pinst_log_producer_config_set_united_deployUnitId;
- pfn_log_producer_config_set_united_serviceUnitId pinst_log_producer_config_set_united_serviceUnitId;
- pfn_create_log_producer_client pinst_create_log_producer_client;
- pfn_log_producer_config_switch_debug_mode pinst_log_producer_config_switch_debug_mode;
- };
- #endif //RVC_VENDOR_LOG4UPLOAD_H_
|