Come sviluppatori di 4D, potreste aver già attivato il registro di debug per risolvere i problemi. 4D v17 R5 introduce diversi miglioramenti per aiutare l’analisi di questi file, come la registrazione solo del processo corrente e la registrazione delle chiamate ai metodi membri (metodi di collezioni o oggetti).
Nuovo selettore per la registrazione dei processi
Il comando SET DATABASE PARAMETER accetta ora un nuovo selettore, Current process debug log recording. Richiamato da qualsiasi parte di un processo, avvia la registrazione solo per il processo corrente e crea un file “4DDebugLog_pX_Y.txt” nella cartella dei log di 4D (dove X è il PUID del processo e Y il numero del file di sequenza). Naturalmente, è anche possibile ottenere lo stato del log di debug del processo utilizzando questo nuovo selettore con il comando Get database parameter.
SET DATABASE PARAMETER(Current process debug log recording;2+4+8)
È possibile continuare a usare il selettoreDebug log recording per registrare i log dell’attività di tutti i processi, esclusi quelli registrati da Current process debug log recording.
Promemoria: è possibile accedere facilmente ai log di debug utilizzando questa riga di codice:
SHOW ON DISK(Get 4D folder(Logs folder))
Nella schermata seguente, si possono vedere i log generati da cinque processi:
Tenete presente che, poiché SET DATABASE PARAMETER non è thread safe, il processo si avvia in modalità cooperativa.
METODI membri logging
Per impostazione predefinita, i log di debug includono ora le chiamate ai metodi membri. Vengono registrate con il tipo di comando numero 9. Se non si vogliono includere i metodi membri, basta chiamare il comando SET DATABASE PARAMETER e i selettori Debug log recording o Current process debug log recording con una nuova opzione che abbia il valore 32. È comunque possibile combinare le opzioni per ottenere i log di debug desiderati.
Questo esempio mostra come registrare le interfacce WiFi ed Ethernet in raccolte separate:
SET DATABASE PARAMETER(Current process debug log recording;2+4+8)
C_COLLECTION ($_networkInterfaces;$_ethernet;$_wifi)
$_networkInterfaces:=Get system info.networkInterfaces
$_ethernet :=$_networkInterfaces.query("type = :1"; "ethernet")
$_wifi :=$_networkInterfaces.query("type = :1"; "wifi")
SET DATABASE PARAMETER (
Current process debug log recording;0)
Il codice ritorna:
Più sicurezza
In precedenza, quando si lanciavano i registri, i file venivano generati fino a quando non c’era più spazio disponibile sul disco. Per evitare errori o attivazioni accidentali nella finestra di amministrazione del server 4D , che potrebbero essere pericolose, il numero di file generati è limitato a 50 per impostazione predefinita. È possibile modificare questo limite tramite il comando SET DATABASE PARAMETER e il selettore Circular log limitation .
// Limit the number of logs files to 100 (the default number is set to 50)
SET DATABASE PARAMETER(Circular log limitation;100)