4D v16.3

Annexe E : Description des fichiers d'historique

Accueil

 
4D v16.3
Annexe E : Description des fichiers d'historique

Annexe E : Description des fichiers d'historique  


 

 

Les applications 4D peuvent générer divers fichiers d'historique (logs) utiles pour le débogage ou l'optimisation de l'exécution des bases. Les fichiers d'historique sont généralement démarrés ou stoppés à l'aide des sélecteurs des commandes SET DATABASE PARAMETER ou WEB SET OPTION et sont stockés dans le dossier Logs de la base (cf.section Description des fichiers de 4D).

Il est nécessaire d'analyser les informations enregistrées afin de pouvoir détecter et corriger les problèmes. Cette annexe fournit une description complète des fichiers suivants :

  • 4DRequestsLog.txt
  • 4DRequestsLog_ProcessInfo.txt
  • HTTPDebugLog.txt
  • 4DDebugLog.txt

Certains champs de ces fichiers sont communs afin de vous permettre de reconstituer la chronologie des événements et d'établir des connexions entre les entrées lors du débogage :

  • sequence_number : ce numéro est unique parmi tous les fichiers d'historique de débogage et est incrémenté à chaque nouvelle entrée, quel que soit le fichier d'historique, de manière à ce que vous puissiez connaître la séquence exacte des opérations.
  • connection_uuid : pour chaque process 4D créé sur un client 4D qui se connecte au serveur, cet UUID de connexion est stocké à la fois côté serveur et client. Il vous permet d'identifier facilement le client distant qui a lancé le process.

Ce fichier d'historique enregistre les requêtes standard effectuées par la machine 4D Server ou la machine 4D distante qui a exécuté la commande (à l'exclusion des requêtes Web).

Comment démarrer ce fichier d'historique :

Note : Cette instruction génère aussi le fichier d'historique 4DRequestsLog_ProcessInfo.txt (voir ci-dessous).

En-têtes
Ce fichier commence par les en-têtes suivants :

  • Log Session Identifier (Identifiant de session d'historique)
  • Nom du serveur qui héberge l'application
  • User Login Name : Nom de l'utilisateur (défini dans l'OS) qui exécute l'application 4D sur le serveur.

Contenu du fichier
Pour chaque requête, les champs suivants sont enregistrés :

Nom du champDescription
sequence_numberNuméro d'opération séquentiel et unique dans la session d'historique
timeDate et heure au format 'MM/DD/YY, HH:MM:SS'
task_idID de tâche interne
componentSignature du composant (par exemple '4SQLS' ou 'dbmg')
process_info_indexCorrespond au champ "index" dans le fichier d'historique 4DRequestsLog_ProcessInfo.txt, permettant de relier une requête à un process
requestID de requête en mode distant chaîne de message pour les requêtes SQL ou messages LOG EVENT
bytes_inNombre d'octets reçus
bytes_outNombre d'octets envoyés
durationTemps nécessaire en millisecondes pour effectuer l'action
task_kindType de tâche : process préemptif ou coopératif (respectivement 'p' ou 'c')
connection_uuidIdentifiant UUID de connexion client 4D, SQL ou HTTP (en relation avec le même numéro dans 4DRequestsLog_ProcessInfo.txt)

Ce fichier d'historique enregistre des informations sur chaque process créé sur la machine de 4D Server ou la machine 4D distante qui a exécuté la commande (à l'exclusion des requêtes Web).

Comment démarrer ce fichier d'historique :

Note : Cette instruction génère aussi le fichier d'historique 4DRequestsLog.txt (voir ci-dessous).

En-têtes
Ce fichier commence par les en-têtes suivants :

  • Log Session Identifier (Identifiant de session d'historique)
  • Nom du serveur qui héberge l'application
  • User Login Name : Nom de l'utilisateur (défini dans l'OS) qui exécute l'application 4D sur le serveur.

Contenu du fichier
Pour chaque requête, les champs suivants sont enregistrés :

Nom du champDescription
sequence_numberNuméro d'opération séquentiel et unique dans la session d'historique
timeDate et heure au format 'MM/DD/YY, HH:MM:SS'
indexNuméro de process séquentiel et unique
CDB4DBaseContextUUID du contexte de base du composant DB4D
VTaskIDID de tâche interne
server_process_idID du process sur le serveur
remote_process_idID du process sur le client
process_nameNom du process
cIDIdentifiant de la connexion 4D
uIDIdentifiant du client 4D
IPAddresse IPV4 du client IPv4
host_nameNom d'hôte du client
user_nameNom de connexion utilisateur sur le client
connection_uuidIdentifiant UUID de connexion client 4D, SQL ou HTTP (en relation avec le même numéro dans 4DRequestsLog.txt)

Ce fichier d'historique enregistre chaque requête HTTP et chaque réponse en mode brut (raw). La totalité des requêtes, en-têtes compris, est enregistrée ; optionnellement, le corps (body) des requêtes peut également être enregistré.

Comment démarrer ce fichier d'historique :

 WEB SET OPTION(Web debug log;wdl enable without body//d'autres valeurs sont disponibles

Les champs suivants sont enregistrés pour les requêtes et les réponses :

Nom du champDescription
SocketIDID de la socket utilisée pour la communication
PeerIPAdresse IPv4 de l'hôte (client)
PeerPortPort utilisé par l'hôte (client)
TimeStampHorodatage en millisecondes (depuis le démarrage du système)
ConnectionIDUUID de la connexion (UUID de la VTCPSocket utilisée pour la communication)
SequenceNumberNuméro d'opération séquentiel et unique dans la session d'historique

Ce fichier d'historique enregistre chaque événement généré au niveau du langage de 4D. Le mode standard propose une vue basique des événements.

Comment démarrer ce fichier d'historique :

 SET DATABASE PARAMETER(Debug Log Recording;2) //standard

Les champs suivants sont enregistrés pour chaque événement :  

ColonneDescription
1Numéro d'opération séquentiel et unique dans la session d'historique
2Temps écoulé en millisecondes à compter du démarrage du fichier d'historique
3ID process (p=xx) et ID unique process (puid=xx)
4Niveau de stack
5Peut être Nom de commande / Nom de méthode / Message / Info Start Stop task / Nom, événement ou callback plugin / UUID connexion
6Temps d'enregistrement de l'opération dans l'historique (différent 2e colonne)

Ce fichier d'historique enregistre chaque événement généré au niveau du langage de 4D. Le mode tabulaire est plus compact et contient davantage d'informations que le mode standard.

Comment démarrer ce fichier d'historique :

 SET DATABASE PARAMETER(Debug Log Recording;2+4) //format tabulaire étendu

Les champs suivants sont enregistrés pour chaque événement :  

ColonneDescription
1Numéro d'opération séquentiel et unique dans la session d'historique
2Temps écoulé à compter du démarrage du fichier d'historique au format "hh:mm:ss:ms" (peut être précédé par un compteur de jours. Par exemple, si l'historique a été démarré il y a 3 jours, le temps pourrait être "3+11:58:23:163")
3ID du process
4ID unique du process
5Niveau de stack
6Peut représenter (en fonction du type d'entrée enregistré dans la 8e colonne :
  • un ID de commande du langage (lorsque le type=1)
  • un nom de méthode (lorsque le type=2)
  • une combinaison de pluginIndex;pluginCommand (lorsque le type=4, 5, 6 ou 7). Peut contenir une valeur telle que '3;2'
  • un UUID de process de connexion (lorsque le type=8)
  • ou 'starting sequence number' lors de la fermeture d'un niveau de stack (doit correspondre au numéro de séquence du démarrage de l'action courante)
  • 121  15:16:50:777  5  8  0  CallMethod  2  0
    122  15:16:50:777  5  8  1  283  1  0
    123  15:16:50:777  5  8  1  122  -1  0  3
    124  15:16:50:777  5  8  0  121  -2  0  61
    Ici dans la dernière ligne (124), la valeur de la 6e colonne '121' correspond au numéro de séquence de la première ligne (stack niveau 0). Dans la ligne du dessus (123), la valeur de la 6e colonne '122' correspond au numéro de séquence de la ligne du dessus (stack niveau 1) etc.
    7Paramètres passés aux commandes, méthodes ou plug-ins
    8Type d'opération d'historique. Il peut s'agir d'une valeur absolue:
    1: Commande
    2: Méthode
    3: Message (envoyé par LOG EVENT uniquement)
    4: PluginMessage
    5: PluginEvent
    6: PluginCommand
    7: PluginCallback
    8: Process (Task)
    Lorsqu'une valeur est négative, cela signifie simplement qu'il s'agit de la contrepartie de la fermeture d'un niveau de stack (cf. 8e colonne des lignes 123 et 124 dans l'historique ci-dessus).
    9Evénement formulaire, le cas échéant ; vide dans les autres cas (par conséquent cette colonne est utilisée lorsque le code est exécuté dans une méthode formulaire ou objet)
    10Durée en micro secondes de l'action enregistrée ; uniquement pour les niveaux de femeture de stack (cf. 10e colonne des lignes 123 et 124 dans l'historique ci-dessus)

     
    PROPRIÉTÉS 

    Produit : 4D
    Thème : Annexes

     
    HISTORIQUE 

    New
    Créé : 4D v16

     
    UTILISATION DE L'ARTICLE

    4D - Mode Développement ( 4D v16)
    4D - Mode Développement ( 4D v16.1)
    4D - Mode Développement ( 4D v16.3)