Rotatelogs do Apache não funcionam para um determinado tamanho de arquivo

0

De acordo com a documentação do Apache para rotatelogs , eu implementei o formato de arquivo de log da seguinte forma em httpd.conf:

<IfModule log_config_module>
    CustomLog "|bin/rotatelogs.exe logs/access_log-%Y.log 10M" common
<IfModule log_config_module>

Ele criou um arquivo access_log.log-2015 e registrou os registros, mas não está girando o arquivo depois de atingir 10 MB, e o tamanho do arquivo agora é de 20 MB.

Há algo que eu esteja sentindo falta aqui? Eu estou no XAMPP no Windows.

    
por Arfeen 19.01.2015 / 07:20

2 respostas

1

A documentação do Rotatelogs diz que o modelo de arquivo de log deve ser específico o suficiente para fornecer um novo nome sempre que o limite de tamanho for atingido. Seu não é. Tente mudar para incluir mês e dia.

Doc implica que, quando o limite for atingido, o arquivo será truncado e reaberto. Não é isso que você está vendo, mas pode haver diferenças de plataforma.

    
por 20.01.2015 / 09:05
1

Sua configuração é esta:

<IfModule log_config_module>
    CustomLog "|bin/rotatelogs.exe logs/access_log-%Y.log 10M" common
<IfModule log_config_module>

Portanto, da maneira como isso é configurado, access_log.log-2015 com certeza mudará em 1º de janeiro de 2016 para access_log.log-2015 independentemente da configuração de tamanho. Se você quiser rotação diária, precisa definir algo mais do que um ano, como mês e dia, assim:

<IfModule log_config_module>
    CustomLog "|bin/rotatelogs.exe logs/access_log-%Y-%m-%d.log 10M" common
<IfModule log_config_module>

Ou até mesmo horas, minutos e segundos além do mês e do dia:

<IfModule log_config_module>
    CustomLog "|bin/rotatelogs.exe logs/access_log-%Y-%m-%d-%H_%M_%S.log 10M" common
<IfModule log_config_module>

A idéia é simples: se o arquivo de log atingir 10MB de tamanho e o nome do arquivo for apenas um ano, esse esquema de nomeação de um ano será retido para cada "rotação". Você não está vendo a rotação, pois ela está apenas anexando-a para access_log-2015.log .

Ao adicionar mais especificidade, você tem a garantia de que os logs não só girarão quando o limite de 10MB for atingido, mas você também terá um pseudo timestamp no nome do arquivo para saber exatamente quando a rotação ocorrerá.

    
por 20.01.2015 / 09:26

Tags