Est-il possible de créer un journal des erreurs personnalisé dans Apache 2.2?


11

Je voudrais ajouter le nom du vhost dans mon ErrorLog, puis le diriger vers un programme que j'ai écrit.

Est-il possible d'écrire le format du journal des erreurs personnalisé comme c'est le cas avec le journal Access?


Selon votre configuration, vous pouvez avoir un journal des erreurs pour chacun de vos hôtes virtuels. Ce n'est pas la même chose qu'un fichier journal unifié analysable, mais c'est quelque chose.
muffinista

Réponses:


7

Pour la tuyauterie, voir la directive ErrorLog et les entrées du manuel officiel de Piped Logs qui l'expliquent assez bien.

Obtenir un format de journal des erreurs personnalisé est plus difficile. Vous pouvez facilement personnaliser le journal d'accès avec LogFormatmais il n'y a rien intégré pour modifier le format du journal des erreurs. J'ai rencontré CGI :: Carp qui est un module Perl pour la sortie dans le journal des erreurs. Enfin, il y a toujours une modification directe du code source d'Apache en fonction de la façon dont vous voulez cette fonctionnalité.



6

Avec Apache 2.4, vous pouvez utiliser la ErrorLogFormatdirective.

Syntaxe: ErrorLogFormat [connection|request] format

Exemple simple

ErrorLogFormat "[%t] [%l] [pid %P] %F: %E: [client %a] %M"

Exemple (format par défaut pour les MPM filetés)

ErrorLogFormat "[%{u}t] [%-m:%l] [pid %P:tid %T] %7F: %E: [client\ %a] %M% ,\ referer\ %{Referer}i"

Exemple (similaire au format 2.2.x)

ErrorLogFormat "[%t] [%l] %7F: %E: [client\ %a] %M% ,\ referer\ %{Referer}i"

Exemple avancé avec des ID de journal de demande / connexion

ErrorLogFormat "[%{uc}t] [%-m:%-l] [R:%L] [C:%{C}L] %7F: %E: %M"
ErrorLogFormat request "[%{uc}t] [R:%L] Request %k on C:%{c}L pid:%P tid:%T"
ErrorLogFormat request "[%{uc}t] [R:%L] UA:'%+{User-Agent}i'"
ErrorLogFormat request "[%{uc}t] [R:%L] Referer:'%+{Referer}i'"
ErrorLogFormat connection "[%{uc}t] [C:%{c}L] local\ %a remote\ %A"

Source: directive ErrorLogFormat


Quelqu'un peut-il deviner pourquoi %aapparaîtrait vierge? C'est censé être l'adresse IP du client. J'ai posté une question à ce sujet.
Bob Stein

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.