Sur FreeBSD, le gestionnaire de rotation de log de base s'appelle newsyslog(8), il est configuré par le fichier /etc/newsyslog.conf (newsyslog.conf(5)). Je suis habitué à logrotate(8) et j'aime bien conserver tous mes fichiers de logs d'activité web, je vais donc faire la même chose avec newsyslog(5). Je souhaite donc faire tourner mes logs tous les jours à minuit, compresser les logs passés et les conserver ad vitam eternam. Ces contraintes donnent l'entrée suivante dans le fichier de configuration :

# lighttpd rotates
/var/log/lighttpd/lighttpd.access.log   www:www   640  366 *   @T00   JC

il faut spécifier un champ de gestion d'appartenance (propriétaire et groupe), lighttpd écrit les logs avec les droits www:www et ils seront déplacés en changeant le propriétaire en root:www.Les fichiers seront créés avec les droits 640, le champ suivant spécifie que les fichiers sont sauvegardés 366 fois avant d'éliminer les fichiers les plus anciens (1 an). Les 2 champs suivant provoquent une rotation à minuit tous les jours. Le dernier champ précise qu'on compresse les archive de log en bzip2 et que le fichier est créé si il n'existe pas.
Le champ 'count' n'est pas exhaustivement décrit dans la page de man, et j'espérais pouvoir utiliser une valeur qui me permettrait d'avoir un nombre infini de fichiers de logs. La lecture du code source m'a confirmé que je ne pouvais pas utiliser le même type de fonctionnement que pour logrotate(8).

Une entrée doit être créée pour chaque fichier de log de chaque vhost.