Como direcionar a saída do diário de certas unidades para um arquivo específico?

7

Eu tenho um sistema com vários daemons em execução (como unidades systemd) que geram informações de log para o diário no Arch Linux. Eu quero direcionar a saída do diário de alguns desses arquivos de unidade em um arquivo de texto separado, cuja localização especifico, criando essencialmente um arquivo de log para um subconjunto de unidades. Como posso fazer isso?

    
por Amr Bekhit 28.11.2014 / 17:53

1 resposta

6

Parece que isso não é possível e indesejado pelo upstream (redirecionando stdout / stderr para arquivos individuais); link - leia todo o tópico para obter mais informações de contexto sobre como isso deve funcionar .

O que você pode fazer é logar ao syslog e, assim, gravar em arquivos individuais. Ou o contrário, se a unidade chamar algum programa que possa gravar um log em si, use-o para registrar em um arquivo.

Você também pode querer dar uma olhada em View stdout / stderr of systemd serviço

O que você já pode fazer com sua configuração atual é use journalctl -u yourunitname > yourlogfile_for_yourunitname
para direcionar toda a saída do diário para sua unidade "yourunitname" em um arquivo.

Na última parte, você também deve dar uma olhada nas dicas do Lennart do tópico da lista de discussão acima mencionado:

On recent systemd versions something like systemd-journalctl -o cat _SYSTEMD_UNIT=postgresql.service should create a very simple output that only includes the actual messages and nothing else. You can even pass "-f" and make this live."

EDITAR: Na verdade, para versões mais novas do systemd o comando é apenas journalctl e pelo que eu posso dizer, o longo comando mencionado acima é o mesmo que journalctl -u yourunitname e você também pode -f lá para "seguir" a saída (como em tailf ou tail -f).

    
por 28.11.2014 / 22:50