Odpowiedzi:
Możesz użyć:
journalctl -u service-name -f
-f, - śledź
Pokaż tylko najnowsze wpisy do dziennika i stale drukuj nowe wpisy, gdy są one dołączane do dziennika.
Tutaj dodałem „nazwa usługi”, aby odróżnić tę odpowiedź od innych; zamieniasz rzeczywistą nazwę usługi zamiast tekstu service-name
.
Możesz przekazać swoje wpisy dziennika do dziennika :
systemd-cat tail -f /tmp/myapp.log /var/log/postgresql.log
a następnie użyj journalctl -f
... chociaż, jak wspomniał Mark, to wydrukuje wszystkie wpisy do dziennika.
Jednym ze sposobów filtrowania tylko wiadomości z tych dzienników i z tej konkretnej jednostki jest użycie odrębnego, SYSLOG_IDENTIFIER
tj. Edycja pliku jednostki i w [Service]
sekcji dodaj np.
SyslogIdentifier=my_stuff
zrestartuj urządzenie, a następnie uruchom systemd-cat
z tym samym identyfikatorem
systemd-cat -t my_stuff tail -f /tmp/myapp.log /var/log/postgresql.log
i wreszcie zapytanie do dziennika tylko dla tego konkretnego identyfikatora:
journalctl -f -t my_stuff
Jeśli masz dostępną wersję bash, możesz użyć podstawienia procesu jako jednego z tail
parametrów:
tail -f /tmp/myapp.log /var/log/postgresql/postgresql.main.log <(journalctl -f)
pgpool.service
, spróbuj journalctl -fu pgpool.service
. Ponadto, jeśli nie używasz tego jako root, upewnij się, że użytkownik jest w systemd-journal
grupie!