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_IDENTIFIERtj. Edycja pliku jednostki i w [Service]sekcji dodaj np.
SyslogIdentifier=my_stuff
zrestartuj urządzenie, a następnie uruchom systemd-catz 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 tailparametró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-journalgrupie!