diff --git a/src/include/applicat.cpp b/src/include/applicat.cpp index ed120e92b..6b9930f39 100755 --- a/src/include/applicat.cpp +++ b/src/include/applicat.cpp @@ -586,7 +586,15 @@ void TApplication::run( xvt_vobj_set_attr(NULL_WIN, ATTR_APPL_VERSION_STRING, (long)(const char*)ver); } - set_xvt_hooks(); + __set_trace(); + + const struct tm * timeloc = xvt_time_now(); + + TRACE(""); + TRACE("----------"); + TRACE("%s %s - %s %02d:%02d:%02d", argv[0], argv[1], today.string(), timeloc->tm_hour, timeloc->tm_min, timeloc->tm_sec); + TRACE("----------"); + set_xvt_hooks(); _running = TRUE; xvt_app_create(argc, argv, 0L, task_eh, &cfg); diff --git a/src/include/checks.cpp b/src/include/checks.cpp index 8a540a34c..6121ff801 100755 --- a/src/include/checks.cpp +++ b/src/include/checks.cpp @@ -336,6 +336,12 @@ bool delete_box(const char* fmt, ...) return r == RESP_DEFAULT; } +HIDDEN bool __traceon = false; + +void __set_trace() +{ + __traceon = ini_get_bool(CONFIG_STUDIO, "Main", "TRACE"); +} // @doc EXTERNAL // @msg __trace | Permette di mandare dei messaggi nel file trace.log bool __trace( @@ -347,21 +353,31 @@ bool __trace( // // @rdesc Ritorna non 0 se riesca ad aprire il file trace.log { - static FILE* f = NULL; - if (f == NULL) - fopen_s(&f, "trace.log", "w"); - if (f != NULL) - { - buildmsg(); - fprintf(f, "%s\n", msg); - fflush(f); - } - return f != NULL; + static FILE* f = nullptr; + + if (__traceon) + { + if (f == nullptr) + fopen_s(&f, "trace.log", "a"); + if (f != nullptr) + { + buildmsg(); + fprintf(f, "%s\n", msg); + fflush(f); + } + return f != NULL; + } + return true; } bool __tracemem(const char* msg) { - unsigned long mem = xvt_sys_get_free_memory_kb(); - return __trace("%5lu Kb - %s", mem, msg); + if (__traceon) + { + unsigned long mem = xvt_sys_get_free_memory_kb(); + + return __trace("%5lu Kb - %s", mem, msg); + } + return true; } diff --git a/src/include/checks.h b/src/include/checks.h index fe5d1f398..dff4bcb9e 100755 --- a/src/include/checks.h +++ b/src/include/checks.h @@ -27,6 +27,7 @@ extern "C" { bool cantread_box(const char* filename); bool cantwrite_box(const char* filename); bool cantaccess_box(const char* filename); + void __set_trace(); bool __trace(const char* fmt, ...); bool __tracemem(const char* fmt); @@ -105,15 +106,10 @@ extern "C" { // Utilizzata in fase di debug (definire il simbolo TRC in compilazione) -#ifdef TRC // @doc EXTERNAL // @msg TRACE | Macro che richiama la funzione #define TRACE __trace #define TRACEMEM(msg) __tracemem(msg) -#else -#define TRACE 1 ? 0 : __trace -#define TRACEMEM(msg) 0 -#endif #endif // __CHECKS_H diff --git a/src/include/reputils.cpp b/src/include/reputils.cpp index 3d428b60a..3a7aca2d7 100755 --- a/src/include/reputils.cpp +++ b/src/include/reputils.cpp @@ -139,6 +139,7 @@ bool TLog_report::log(int sev, const char* msg) { TText_recordset* csv = (TText_recordset*)recordset(); bool ok = csv != NULL; + TRACE("%d - %s", sev, msg); if (ok) { //controlla se la stringa esiste gia' diff --git a/src/include/transaction.cpp b/src/include/transaction.cpp index 32e298197..a4e1095d7 100644 --- a/src/include/transaction.cpp +++ b/src/include/transaction.cpp @@ -757,6 +757,7 @@ void execute_transactions(TArray & transactions, TLog_report & log, bool interac pref.rtrim(1); while (i >= 0) { + TRACE("Salvataggio registrazione %d", i); if (t.executer() == table && t.name().starts_with(pref)) { t.write(); @@ -783,8 +784,10 @@ void execute_transactions(TArray & transactions, TLog_report & log, bool interac app << " -u" << user(); TExternal_app cmd(app); - cmd.run(); + TRACE("Aggiornamento registrazione %d", i); + cmd.run(); list_files(filemask, files); + TRACE("Aggiornamneto log"); FOR_EACH_ARRAY_ROW(files, r, str) { TTransaction t(*str);