La directive ErrorLog permet d'indiquer le fichier qui va contenir cette historique (<serverRoot>/logs/error_log généralement).
La directive LogLevel permet de fixer le type des problèmes à enregistrer en indiquant un des niveaux suivants (du type le plus spécifique au type le plus large) : emerg, alert, crit, error, warn, notice, info, debug. En indiquant emerg, seuls les problèmes de la plus haute importance (ceux rendant le système inutilisable) seront reportés. À l'autre bout de la chaîne, le niveau debug permet de reporter des problèmes qui ne sont pas vraiment des problèmes mais des messages utiles à un deboguage.
La directive CustomLog permet d'indiquer le fichier utilisé (<serverRoot>/logs/access_log par défaut) et le format des informations enregistrées. La syntaxe de cette directive est :
CustomLog désignationDuFichierLog formatUtiliséUn format est défini par la directive LogFormat qui prend en paramètre une chaîne de caractères entourée de '' spécifiant ce que l'on veut afficher et le nom du format. Dans la chaîne spécifiant le format peut se trouver %h pour afficher l'adresse IP du client, %u pour afficher le userId du client, %r pour afficher la requête entière du client, %m pour afficher la méthode de la requête, %U pour afficher le chemin du document, %q pour afficher la chaîne paramètre de la requête, %H pour afficher le protocole de la requête, %t pour afficher le moment auquel la requête a été complètement traitée, %>s pour afficher le status retourné par le serveur, %b pour afficher la taille du contenu retourné au client, %unNomi pour afficher la valeur du champ d'en-tête portant le nom unNom,...
Remarque : dans le cas où le serveur ne peut fournir l'information demandée, un - est affiché. Par exemple, nous pouvons définir le format monFormat qui permettrait d'afficher uniquement l'adresse IP du client par :
LogFormat ''Adresse IP du client -> \%h'' monFormat