Como ter logs diários de erro e acesso no Apache (para Windows)?


10

Estamos executando o Apache 2.2.9 (Win32) com alguns hosts virtuais configurados em um servidor. Cada um possui suas próprias configurações ErrorLog e CustomLog, que estão no formato de "logs / [nome de domínio] -erro.log" e "logs / [nome de domínio] -access.log". Infelizmente, agora eles estão criando arquivos muito grandes.

No IIS, você pode especificar o agendamento do log, que pode colocá-los em um formato diário de "yymmdd.log". Existe algo semelhante que eu possa fazer aqui?

Também não precisa ser diário, semanal ou mensal. Gostaria apenas de separá-los para que possamos manter o valor X em vez de tudo o que já foi registrado. Um rápido Google parece trazer muitas respostas orientadas ao Linux envolvendo divisores de log, scripts e tarefas cron, o que não é muito útil para uma instalação do Windows.

Atualizar

Graças ao radius, ajustei meu httpd-vhosts.conf para usar o comando rotatelogs integrado do Apache , no seguinte formato:

ErrorLog "|bin/rotatelogs logs/[domain name]-error.%Y-%m-%d-%H_%M_%S.log 5M" CustomLog "|bin/rotatelogs logs/[domain name]-access.%Y-%m-%d-%H_%M_%S.log 5M" common

Eles criarão um novo arquivo de log quando o atual atingir 5 MB. Eu sei que não é diário, conforme solicitado, mas que os mantém em um tamanho gerenciável, o que servirá. Tentei rodar depois de tantos segundos, mas não parecia colocar o carimbo de data / hora no nome do arquivo corretamente (especificamente horas, minutos e segundos).

Respostas:


11

O que você está procurando é o programa rotatelogs que acompanha o apache http://httpd.apache.org/docs/2.2/programs/rotatelogs.html

Por exemplo, para girar seus logs diariamente à meia-noite:

CustomLog "|bin/rotatelogs -f /var/log/apache2/logfile.%Y.%m.%d.log 86400" common

+1, não sabia que o Apache tinha uma solução própria.
Karolis T.

Para quem usa o Ubuntu, pode ser necessário alterar o caminho /usr/bin/rotatelogs, pois é onde rotatelogsé encontrado. Caso contrário, o Apache falhará ao reiniciar devido a um erro.
BadHorsie 12/12/19



0

Tente direto com

CustomLog "|C:/<chemin vers apache>/bin/rotatelogs.exe E:/<chemin vers les logs>/<monsite>/access-%Y_%m_%d.log 86400 60" combined

2
Por favor, adicione uma explicação do que isso faz.
kasperd
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.