Estou executando o Go binary como um serviço no Ubuntu 16.04, e não consigo criar o arquivo de log que pertence ao syslog. Eu criei um serviço para myapp.service e se parece com o seguinte:
[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
Agora apenas cria uma pasta dentro de / var / log / myapp. Mas não criou nenhum arquivo myapp.log dentro da pasta myapp. Eu posso verificar esses logs usando o comando ::
sudo journalctl -f -u myapp
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. Mas isso inclui log para sucesso e falha, e eu só quero criar logs de falha, como isso é possível ??