Estou executando o Go binary como um serviço e criei um arquivo de log de propriedade do syslog para manter todos os logs.
Este é o meu arquivo de serviço ::
[Unit]
Description=myapp
[Service]
Type=simple
Restart=always
RestartSec=30
WorkingDirectory= /home/go/src/myapp
ExecStart=/home/go/src/myapp/myapp
# myapp.log owned by syslog
PermissionsStartOnly=true
ExecStartPre=/bin/mkdir -p /var/log/myapp
ExecStartPre=/bin/chown syslog:adm /var/log/myapp
ExecStartPre=/bin/chmod 755 /var/log/myapp
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=myapp
[Install]
WantedBy=multi-user.target
Depois de usar o rsyslog para gerenciar syslogs, criei um arquivo dentro do /etc/rsyslog.d/myapp.conf com o seguinte conteúdo:
if $programname == 'myapp' then /var/log/myapp/myapp.log
& stop
Depois disso, reiniciei o serviço. Ele cria um arquivo de log para mim.
Eu tenho duas perguntas sobre o arquivo de log, da seguinte forma:
- Agora preciso liberar todos os dados do arquivo de log a cada 15 dias. Existe
qualquer método para fazer isso ??
- Há alguma API que dará resposta a cada 3 minutos, então
Existe alguma maneira de restringir alguma API de gerar logs?
Eu estou fazendo tudo isso usando o systemd. Por favor, sugira-me se houver um método para criar este tipo de arquivo de log anexado ao serviço systemd.