Amélioration des journaux de débogage grâce à ces améliorations

Traduit automatiquement de Deepl

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 :

blank

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)

Avatar
- Product Owner -Damien Fuzeau a rejoint l'équipe 4D Product en février 2019. En tant que Product Owner, il est en charge de la rédaction des user stories, puis de leur traduction en spécifications fonctionnelles. Son travail consiste également à s'assurer que les implémentations de fonctionnalités livrées répondent aux besoins des clients.Damien est diplômé de l'Université de Nantes en génie logiciel. Il a passé plus de 23 ans dans son ancienne entreprise, d'abord en tant que développeur (découverte de 4D en 1997), puis en tant que responsable de l'ingénierie et architecte logiciel. Cette société est un partenaire OEM de 4D et a déployé des logiciels d'entreprise basés sur 4D pour des milliers d'utilisateurs, sur des centaines de serveurs. Damien est donc habitué au développement et au déploiement 4D dans un contexte multi-langues.