Como posso enviar uma mensagem para o diário systemd a partir da linha de comando?

46

Nos sistemas Linux mais antigos, o loggercomando pode ser usado para enviar uma mensagem de log para o syslog.

Lendo para onde loggeras mensagens são registradas no Arch Linux? , parece que as syslogmensagens e o loggeraplicativo de linha de comando somente conversam com o systemddiário se um soquete para encaminhamento de mensagens estiver configurado .

Então, qual é o equivalente moderno do loggercomando? Como posso enviar uma mensagem diretamente para o diário systemd a partir da linha de comando?

mikemaccana
fonte
também podemos configurar o rsyslog para receber logs do journalctl como entrada e, em seguida, produzi-los como arquivos também via rsyslog.
Luv33preet

Respostas:

59

systemd-cat é o equivalente ao logger:

echo 'hello' | systemd-cat

Em outro terminal, executando journalctl -f:

Feb 07 13:38:33 localhost.localdomain cat[15162]: hello

As prioridades são especificadas apenas por parte da cadeia:

echo 'hello' | systemd-cat -p info
echo 'hello' | systemd-cat -p warning
echo 'hello' | systemd-cat -p emerg

Os avisos são ousados, as emergências são ousadas e vermelhas. Coisas assustadoras.

Você também pode usar um 'identificador' arbitrário para especificar o nome do aplicativo. Estes são como instalações antigas do syslog, mas você não está preso com coisas antigas como lpr uucp nntpou o sempre descritivo local0através local7.

echo 'hello' | systemd-cat -t someapp -p emerg

É registrado como:

Feb 07 13:48:56 localhost.localdomain someapp[15278]: hello
mikemaccana
fonte
6
Muito útil. Você pode filtrar para as mensagens de log criadas com -to seguinte comando:journalctl -t someapp
Att Righ