main/task_sdcard.c

changeset 62
2e90ada37476
parent 61
c7b8a9931b59
child 64
326c38d3681b
--- a/main/task_sdcard.c	Thu Jul 04 15:57:43 2019 +0200
+++ b/main/task_sdcard.c	Thu Jul 04 21:46:12 2019 +0200
@@ -49,6 +49,35 @@
 extern time_t		now;
 extern struct tm	timeinfo;
 extern uint32_t		TimeBrewing;
+extern bool             System_TimeOk;
+
+
+
+void log_msg(const char *tag, const char *format, ...)
+{
+    char	*outstr, logfn[64], stamp[32];
+    va_list	va_ptr;
+    FILE	*fp;
+
+    outstr = calloc(1024, sizeof(char));
+    va_start(va_ptr, format);
+    vsnprintf(outstr, 1023, format, va_ptr);
+    ESP_LOGI(tag, "%s", outstr);
+
+    if (System_TimeOk && sdcard_state->card_present == true) {
+	snprintf(logfn, 64, "/sdcard/log/sys%04d%02d%02d.log", timeinfo.tm_year+1900, timeinfo.tm_mon+1, timeinfo.tm_mday);
+	snprintf(stamp, 31, "%02d-%02d %02d:%02d:%02d", timeinfo.tm_mday, timeinfo.tm_mon+1, timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec);
+	fp = fopen(logfn, "a+");
+	if (fp) {
+	    fprintf(fp, "%s %s: %s\n", stamp, tag, outstr);
+	    fclose(fp);
+	}
+    }
+
+    va_end(va_ptr);
+    free(outstr);
+}
+
 
 
 void log_begin(time_t t)
@@ -60,7 +89,7 @@
      */
     if (! strlen(sdcard_state->logfile) && strlen(runtime.Logfile)) {
 	sprintf(sdcard_state->logfile, "%s", runtime.Logfile);
-	ESP_LOGI(TAG, "Resumed %s", sdcard_state->logfile);
+	log_msg(TAG, "Resumed %s", sdcard_state->logfile);
     } else {
     	localtime_r(&t, &timeinfo);
     	if (timeinfo.tm_year > (2016 - 1900)) {
@@ -69,7 +98,7 @@
     	} else {
 	    sprintf(sdcard_state->logfile, "brewlog");
     	}
-	ESP_LOGI(TAG, "Create %s", sdcard_state->logfile);
+	log_msg(TAG, "Create %s", sdcard_state->logfile);
     	sprintf(runtime.Logfile, "%s", sdcard_state->logfile);
     }
 }
@@ -482,7 +511,7 @@
 	if (uxBits & TASK_SDCARD_LOG_CLOSE) {
 	    // Close the logfile.
 	    if (strlen(sdcard_state->logfile) && (sdcard_state->card_present == true)) {
-		ESP_LOGI(TAG, "Closing logfile");
+		log_msg(TAG, "Closing logfile");
 		char	destname[64];
 		sprintf(destname, "/sdcard/w/log");
 		int rc = mkdir(destname, 0755);
@@ -517,7 +546,7 @@
 		    }
 		    sprintf(destname, "/sdcard/w/log/%s.json", sdcard_state->logfile);
 		    if (FileCopy(filename, destname) == 0) {
-			ESP_LOGI(TAG, "JSON file copied to %s", destname);
+			log_msg(TAG, "JSON file copied to %s", destname);
 			unlink(filename);
 		    }
 		}

mercurial