Как я могу отправить сообщение в журнал systemd из командной строки?

46

В более старых системах Linux эту loggerкоманду можно использовать для отправки сообщения журнала в системный журнал.

Читая, куда loggerзаносятся его сообщения в Arch Linux? Похоже, что syslogсообщения и loggerприложение командной строки общаются с systemdжурналом, только если установлен сокет для пересылки сообщений .

Так каков современный эквивалент loggerкоманды? Как я могу отправить сообщение напрямую в системный журнал из командной строки?

mikemaccana
источник
мы также можем настроить rsyslog на прием журналов journalctl в качестве входных данных, а затем выводить их в виде файлов также через rsyslog.
Luv33preet

Ответы:

59

systemd-cat эквивалентно логгеру:

echo 'hello' | systemd-cat

В другом терминале работает journalctl -f:

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

Приоритеты указываются только частью строки:

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

Предупреждения выделены жирным шрифтом, аварийные ситуации выделены жирным шрифтом и выделены красным цветом. Страшные вещи.

Вы также можете использовать произвольный идентификатор, чтобы указать имя приложения. Это как старые объекты Syslog, но вы не застряли с древними вещами , как lpr uucp nntpили когда-либо описательным local0сквозным local7.

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

Зарегистрирован как:

Feb 07 13:48:56 localhost.localdomain someapp[15278]: hello
mikemaccana
источник
6
Очень полезно. Вы можете фильтровать сообщения журнала, созданные с -tпомощью следующей команды:journalctl -t someapp
Att Righ