Quantcast
Channel: Linux Attitude» Bibliothèque
Viewing all articles
Browse latest Browse all 3

Des logs, des logs, oui mais des logs amis

$
0
0

Niveau :      
Résumé : logs apache en php

Un petit article pour tous ceux qui ont un site sur sur un hébergement mutualisé et qui n'ont pas accès aux logs apache. C'est assez gênant, on est limité dans le choix des outils de statistiques. On a quelques outils purement php peu efficaces, ou des outils web externes qui stockent les données pour vous (mais à qui appartiennent-elles ?).

Pour permettre d'utiliser les outils courants (awstats, awffull, webalizer ...), j'ai écrit un petit script php qui génère des logs au format apache. Il y a plusieurs inconvénients, tout d'abord, on ne loggue que les appels au php, pas les images, ni les binaires ... D'autre part, le code s'exécute nécessairement avant la fin du code lui-même. Donc il y a certaines informations dont on ne dispose pas, comme la taille totale générée, le code de retour ou des éléments des en-têtes renvoyés.

Ce script s'utilise très simplement, il suffit d'inclure le fichier et éventuellement de préciser le format à utiliser et le nom du fichier de log. En pratique l'entrée de log se fera à la fin de l'exécution du php, ce qui permet de mesurer le temps d'exécution. Le logformat s'écrit exactement sous la même forme que celui d'apache, les informations inconnues seront simplement remplacées par un '-' . Notez aussi que le %r (ligne contenant la requête intégrale) est généré à partir des informations disponibles.

A mettre dans votre code php :

$alog_logFormat = "%h %l %u %t \"%r\" %>s %b"; // optionnel
$alog_logFile   = "/tmp/access.log"; // optionnel
include_once("ApacheLog.php");

Attention, le nom du fichier est relatif au script appelant.

Vous trouverez le fichier en pièce attachée à cet article.

Tags:

Viewing all articles
Browse latest Browse all 3

Latest Images





Latest Images