Gestione tracce
In Sage i file di log sono chiamati tracce, e sono ricercabili attraverso LECTRACE (all'apertura della finestra premere F12 per vedere l'elenco delle tracce).
Nel creare un file di traccia da codice è possibile distinguere se il programma viene eseguito in modalità batch o in modalità interattiva (in genere in modalità batch si fa sempre un log per poter capire se succede qualcosa di anomalo).
In genere in modalità interattiva al termine dell'esecuzione la traccia viene visualizzata automaticamente, altrimenti viene scritta ed è poi recuperabile con LECTRACE. Per capire in che modalità avviene l'esecuzione si utilizza GSERVEUR (vedi Variabili globali).
Nel momento in cui c'è una traccia appena chiusa è possibile visualizzarla all'utente finale con questo comando:
Call LEC_TRACE FROM LECFIC
La variabile globale GTRACE contiene il nome della traccia corrente; se GTRACE="" vuol dire che non c'è traccia in corso.
Esempio:
#Apertura traccia (in modalità interattiva) (GSERVEUR=0 modalità interattiva, =1 modalità batch) If !GSERVEUR Call OUVRE_TRACE("Inizio log" -num$(date$)-time$) From LECFIC Endif #scrivere un messaggio informativo Call ECR_TRACE("log"-num$(date$)-time$,0) FROM GESECRAN #Scrittura errore Call ECR_TRACE("log"-num$(date$)-time$,1) FROM GESECRAN #Chiusura e visualizzazione traccia Call ECR_TRACE("Fine log"-num$(date$)-time$,0) FROM GESECRAN If !GSERVEUR Call FERME_TRACE From LECFIC #chiudo traccia Call LEC_TRACE FROM LECFIC #visualizzo traccia Call SUP_TRACE FROM LECFIC #cancello la traccia Endif
Call ECR_TRACE("Testo",N) From GESECRAN[edit]
Valori possibili di N:
- 0 = nero
- 1 = rosso
- -1 = verde
- -2 = blu
Recupero file di errore[edit]
If ERROR>0 Local Clbfile YMSG(8) YMSG="" Call ERRORITRACCIA(filpath("TRA",GTRACE,"tra",0),YMSG) #File traccia import BOM: GTRACE #errori file traccia: YMSG Endif [..] Subprog ERRORITRACCIA(YFILETRACCIA, YCLB) Value Char YFILETRACCIA() #YFILETRACCIA = filpath("TRA",GTRACE,"tra",0) Variable Clbfile YCLB() #carico file di traccia in un clob Local Char YLINE(250) Openi YFILETRACCIA,0 Using [YIN] # apro il file YFILETRACCIA in lettura # read the file Repeat Rdseq YLINE Using [YIN] If left$(YLINE,5)="<0001" Append YCLB, YLINE + chr$(10) Endif Until fstat <> 0 Openi YFILETRACCIA Using [YIN] # chiudo il file YCLB= chr$(10) + chr$(13) + YCLB End