Arquivos de log para processos sem encerramento

Arquivos de log para processos sem encerramento

Estou escrevendo um programa projetado para nunca terminar. Ele também produzirá grandes logs (arquivos) do que está fazendo. O que eu gostaria é que um processo Linux ocorresse periodicamente (a cada X minutos (cronjob?)):

  1. Pegue os logs atuais do arquivo de log atual
  2. coloque-os em um arquivo separado (nome apropriado) para armazenamento/remoção offline
  3. Trunque o arquivo de log atual para que os dados não sejam duplicados.

Todossem perda ou interrupção de dadospara o programa de produção. Para que eu acabe com uma sequência de logs delimitados pelo tempo

Existe um utilitário Linux ou solução conhecida para isso? ou devo incorporar essa funcionalidade de registro no programa?

Responder1

O Linux usa syslogdpara gerenciar arquivos de log. Eu não usei isso pessoalmente, então não tenho certeza de quais podem ser as dicas, mas essencialmente você apenas envia mensagens para o log e o deamon cuida da rotação do arquivo, etc.

Veja aqui:http://linux.die.net/man/3/syslog

Você configuraria /etc/syslog.confo roteamento de suas mensagens para um arquivo específico e poderia girar manualmente os logs usando logrotate, também, eu acho, ou configurar um cron job.

Responder2

Normalmente os daemons apenas gravam logs e nada mais. A rotação de log é um trabalho de outro software. Geralmente isso acontecelogrotateou software semelhante.

informação relacionada