#ifndef RVC_VENDOR_LOG4UPLOAD_H_ #define RVC_VENDOR_LOG4UPLOAD_H_ #pragma once #include #include "log4vendor.h" #include "log_define.h" #if defined(_MSC_VER) #include 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_