En tant que développeur 4D, vous avez peut-être déjà activé le journal de débogage pour résoudre des problèmes. 4D v17 R5 introduit plusieurs améliorations pour vous aider à analyser ces fichiers, comme la journalisation uniquement du processus en cours et la journalisation des appels aux méthodes membres (méthodes de collection ou d’objet).
Nouveau sélecteur pour la journalisation des processus
La commande SET DATABASE PARAMETER accepte désormais un nouveau sélecteur, Current process debug log recording. Appelée à partir de n’importe quelle partie d’un processus, elle lancera la journalisation uniquement pour le processus actuel et créera un fichier « 4DDebugLog_pX_Y.txt » dans le dossier 4D logs (où X est le PUID du processus et Y le numéro du fichier de séquence). Bien entendu, vous pouvez également obtenir l’état du journal de débogage du processus en utilisant ce nouveau sélecteur avec la commande Get database parameter.
SET DATABASE PARAMETER(Current process debug log recording;2+4+8)
Vous pouvez continuer à utiliser le sélecteurDebug log recording pour enregistrer les journaux de l’activité de tous les processus, à l’exception des processus enregistrés par la commande Current process debug log recording.
Rappel : vous pouvez facilement accéder aux logs de débogage en utilisant cette ligne de code :
SHOW ON DISK(Get 4D folder(Logs folder))
Dans la capture d’écran ci-dessous, vous pouvez voir les logs générés par cinq processus :
Gardez à l’esprit que, comme le site SET DATABASE PARAMETER n’est pas thread safe, le processus démarrera en mode coopératif.
MÉTHODES de membre journalisation
Par défaut, les journaux de débogage incluent désormais les appels aux méthodes membres. Ils sont enregistrés avec le type de commande numéro 9. Si vous ne souhaitez pas que les méthodes membres soient incluses, il suffit d’appeler la commande SET DATABASE PARAMETER et les sélecteurs Debug log recording ou Current process debug log recording avec une nouvelle option dont la valeur est 32. Vous pouvez toujours combiner les options pour obtenir les journaux de débogage que vous souhaitez.
Cet exemple montre comment journaliser les interfaces WiFi et Ethernet dans des collections séparées :
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)
Le code revient :
Plus de sécurité
Auparavant, lors du lancement des logs, les fichiers étaient générés jusqu’à ce qu’il n’y ait plus d’espace disque disponible. Pour éviter des erreurs ou une activation accidentelle sur la fenêtre d’administration de 4D Server – ce qui pourrait être dangereux – le nombre de fichiers générés est limité à 50 par défaut. Vous pouvez modifier cette limite via la commande SET DATABASE PARAMETER et le sélecteur 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)