added extented log feature with MQTT publish
This commit is contained in:
parent
d0713e9fa8
commit
b08a1e8c5a
|
|
@ -128,4 +128,5 @@ void RegGSMReset(void (*gsm_rst)(uint8_t level));
|
||||||
void GenerateSystemSettingsJSONFile(void);
|
void GenerateSystemSettingsJSONFile(void);
|
||||||
void mDNSServiceStart(void);
|
void mDNSServiceStart(void);
|
||||||
|
|
||||||
|
esp_err_t ExtendedLog(esp_log_level_t level, char *format, ...);
|
||||||
#endif /* MAIN_INCLUDE_NETTRANSPORT_H_ */
|
#endif /* MAIN_INCLUDE_NETTRANSPORT_H_ */
|
||||||
|
|
|
||||||
52
src/MQTT.c
52
src/MQTT.c
|
|
@ -453,3 +453,55 @@ static void mqtt2_user_event_handler(void *handler_args, esp_event_base_t base,
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define MAX_MQTT_LOG_MESSAGE (1024)
|
||||||
|
#define SPIRAL_LOG_TAG "SystemExtendedLog"
|
||||||
|
char data[MAX_MQTT_LOG_MESSAGE];
|
||||||
|
esp_err_t ExtendedLog(esp_log_level_t level, char *format, ...)
|
||||||
|
{
|
||||||
|
va_list arg;
|
||||||
|
va_start(arg, format);
|
||||||
|
va_end(arg);
|
||||||
|
vsnprintf(data, MAX_MQTT_LOG_MESSAGE, format, arg);
|
||||||
|
switch(level)
|
||||||
|
{
|
||||||
|
case ESP_LOG_INFO:
|
||||||
|
case ESP_LOG_DEBUG:
|
||||||
|
case ESP_LOG_VERBOSE:
|
||||||
|
case ESP_LOG_NONE:
|
||||||
|
ESP_LOGI(SPIRAL_LOG_TAG, "%s", data);
|
||||||
|
break;
|
||||||
|
case ESP_LOG_WARN:
|
||||||
|
ESP_LOGW(SPIRAL_LOG_TAG, "%s", data);
|
||||||
|
break;
|
||||||
|
case ESP_LOG_ERROR:
|
||||||
|
ESP_LOGE(SPIRAL_LOG_TAG, "%s", data);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int idx = 0; idx < 2; idx++)
|
||||||
|
{
|
||||||
|
if (GetMQTTHandlesPool(idx)->mqtt_queue == NULL)
|
||||||
|
continue;
|
||||||
|
char time[RFC3339_TIMESTAMP_LENGTH];
|
||||||
|
GetRFC3339Time(time);
|
||||||
|
char *buf = (char*) malloc(strlen(data) + RFC3339_TIMESTAMP_LENGTH + 2);
|
||||||
|
if (buf)
|
||||||
|
{
|
||||||
|
strcpy(buf, time);
|
||||||
|
strcat(buf, " ");
|
||||||
|
strcat(buf, data);
|
||||||
|
MQTT_DATA_SEND_STRUCT DSS;
|
||||||
|
ComposeTopic(DSS.topic, idx, "LOG", "UPLINK");
|
||||||
|
DSS.raw_data_ptr = buf;
|
||||||
|
DSS.data_length = strlen(buf);
|
||||||
|
if (xQueueSend(GetMQTTHandlesPool(idx)->mqtt_queue, &DSS, pdMS_TO_TICKS(1000)) != pdPASS)
|
||||||
|
free(buf);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
return ESP_ERR_NO_MEM;
|
||||||
|
}
|
||||||
|
return ESP_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user