4D vous permet de générer un historique des requêtes.
Ce fichier est nommé “logweb.txt” et est automatiquement placé :
- avec 4D en mode local et 4D Server, dans le dossier Logs situé à côté du fichier de structure de la base.
- avec 4D en mode distant, dans le sous-dossier Logs du dossier base 4D client (dossier de cache).
L’activation et la configuration du contenu du fichier d’historique s’effectue dans les Propriétés de la base, page Web/Journal (Format) :
Note : L’activation et la désactivation du fichier d’historique des requêtes peut également être effectuée par programmation, à l’aide de la commande SET DATABASE PARAMETER (4D v12) ou WEB SET OPTION (4D v13 et suivantes).
Le menu de format du journal propose les options suivantes :
- Pas de journal : lorsque cette option est sélectionnée, 4D ne génère pas d’historique des requêtes.
- CLF (Common Log Format) : lorsque cette option est sélectionnée, l’historique des requêtes est généré au format CLF. Avec le format CLF, chaque ligne du fichier représente une requête sous la forme :
hôte rfc931 utilisateur [JJ/MMM/AAAA:HH:MM:SS] "requête" statut longueur
Chaque champ est séparé par un espace, chaque ligne se termine par la séquence CR/LF (caractère 13, caractère 10).
- hôte : adresse IP du client (ex. 192.100.100.10)
- rfc931 : information non gérée par 4D, c’est toujours - (signe moins)
- utilisateur : nom de l’utilisateur tel qu’il s’est authentifié, sinon - (signe moins). Si le nom de l’utilisateur contient des espaces, ils sont remplacés par des _ (tiret bas).
- JJ : jour, MMM : mois abrégé en 3 lettres et toujours en anglais (Jan, Feb, ...), AAAA : année, HH : heure, MM : minutes, SS : secondes
La date et l’heure sont locales au serveur- requête : requête envoyée par le client (ex. GET /index.htm HTTP/1.0)
- statut : réponse donnée par le serveur.
- longueur : taille des données renvoyées (hors en-tête HTTP) ou 0.
Les valeurs possibles de statut sont :
200 : OK
204 : Pas de contenu
302 : Redirection
400 : Mauvaise requête
401 : Authentification requise
404 : Non trouvé
500 : Erreur interne
Le format CLF ne peut pas être personnalisé.
- DLF (Combined Log Format) : lorsque cette option est sélectionnée, l’historique des requêtes est généré au format DLF. Le format DLF est semblable au format CLF dont il reprend exactement la structure. Il contient simplement deux champs HTTP supplémentaires à la fin de chaque requête : Referer et User-agent.
- Referer : contient l’URL de la page pointant vers le document demandé.
- User-agent : contient le nom et la version du navigateur ou du logiciel client à l’origine de la requête.
Le format DLF ne peut pas être personnalisé.
- ELF (Extended Log Format) : lorsque cette option est sélectionnée, l’historique des requêtes est généré au format ELF. Le format ELF est largement répandu dans le monde des serveurs HTTP. Il permet de construire des historiques sophistiqués, répondant à des besoins spécifiques. Pour cette raison, le format ELF est personnalisable : il est possible de choisir les champs à enregistrer ainsi que leur ordre d’insertion dans le fichier.
- WLF (WebStar Log Format) : lorsque cette option est sélectionnée, l’historique des requêtes est généré au format WLF. Le format WLF a été développé spécifiquement pour le serveur 4D WebSTAR. Il est semblable au format ELF, il dispose simplement de champs supplémentaires. Comme le format ELF, il est personnalisable.
Configurer les champs
Lorsque vous choisissez le format ELF (Extended Log Format) ou WLF (WebStar Log Format), la zone “Formatage du journal” affiche les champs disponibles pour le format. Vous devez sélectionner chaque champ à inclure dans l’historique. Pour cela, utilisez les flèches de commande ou procédez par glisser-déposer.
Note : Il n’est pas possible de sélectionner deux fois le même champ.
Le tableau suivant liste les champs disponibles pour chaque format (par ordre alphabétique) et décrit son contenu :
Champ | ELF | WLF | Valeur |
BYTES_RECEIVED | | X | Nombre d’octets reçus par le serveur |
BYTES_SENT | X | X | Nombre d’octets envoyés par le serveur au client |
C_DNS | X | X | Adresse IP du DNS (ELF : champ identique au champ C_IP) |
C_IP | X | X | Adresse IP du client (par exemple 192.100.100.10) |
CONNECTION_ID | | X | Numéro unique de la connexion |
CS(COOKIE) | X | X | Informations sur les cookies contenus dans la requête HTTP |
CS(HOST) | X | X | Champ Host de la requête HTTP |
CS(REFERER) | X | X | URL de la page pointant vers le document demandé |
CS(USER_AGENT) | X | X | Informations sur le logiciel et le système d’exploitation du client |
CS_SIP | X | X | Adresse IP du serveur |
CS_URI | X | X | URI sur lequel la requête est effectuée |
CS_URI_QUERY | X | X | Paramètres d’interrogation de la requête |
CS_URI_STEM | X | X | Partie de la requête sans les paramètres d’interrogation |
DATE | X | X | DD: jour, MMM: abréviation de 3 lettres pour le mois (Jan, Feb,...), YYYY: année |
METHOD | X | X | Méthode HTTP utilisée pour la requête adressée au serveur |
PATH_ARGS | | X | Paramètres de la CGI : chaîne située après le caractère “$” |
STATUS | X | X | Réponse fournie par le serveur |
TIME | X | X | HH: heure, MM: minutes, SS: secondes |
TRANSFER_TIME | X | X | Délai ayant été nécessaire au serveur pour générer la réponse |
USER | X | X | Nom d’utilisateur s’il s’est authentifié, sinon - (signe moins). Si le nom d’utilisateur contient des espaces, ils sont remplacés par des _ (traits de soulignement) |
URL | | X | URL demandé par le client |
Note : La date et l’heure sont indiquées en GMT.