diff -r c7b8a9931b59 -r 2e90ada37476 main/task_sdcard.c --- 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); } }