mysql error.log centraliza logs

0

Estou desenvolvendo um script no qual ele analisa os logs a cada 10 minutos e, se houver algum erro crítico, ele enviará um e-mail para um determinado endereço. Eu tenho esse problema eu gostaria de resolver mais elegante possível: Eu gostaria de ver os logs de /var/log/mysql/error.log , mas há vários logs.

Exemplo:

  • error.log
  • error.log.1.gz
  • error.log.2.gz
  • error.log.3.gz

Do meu ponto de vista, há duas maneiras de resolver esse problema: Solução 1:

try:
 open("/var/log/mysql/error.log", "rb")
except IOError:
 try:
  open("/var/log/mysql/error.log", "rb")
 except IOError:
  ....

Você pode ver que isso levará vários try/except e provavelmente haverá uma maneira melhor de fazê-lo. Eu tentei descobrir algo em vez de vários try/except mas sem sorte. Vocês poderiam me apontar na direção certa? Não me dê a resposta inteira.

Solução 2:

Centralize os logs em apenas um log. Dessa forma eu teria que abrir apenas um arquivo em vez de vários try/except . Esta solução parece muito mais elegante. Eu li a página error.log do mysql e não encontrei resposta alguma para minha pergunta.

Eu acho que um pouco de fundo é necessário: é o meu terceiro dia de Python e eu tenho o básico do MySQL.

    
por The dude 03.01.2016 / 14:17

1 resposta

1

Duhhhhhhhhhhhhhhh. Todo arquivo de log do MySql é um trabalho de logrotate. Ele estava girando semanalmente e fazendo cópias dele. O registro mais recente foi registrado em error.log , o que significa que error.log.1.gz era algo mais antigo.

Sim, eu me sinto idiota como o inferno. Vou deixar isso aqui se alguém se meter no mesmo problema que eu.

    
por 03.01.2016 / 14:46