tail &journalctl 결합

tail &journalctl 결합

내 애플리케이션과 postgres의 로그를 추적하고 있습니다.

tail -f /tmp/myapp.log /var/log/postgresql/postgresql.main.log

pgpool의 로그를 포함해야 합니다. 예전에는 syslog였지만 지금은 Journalctl입니다.

tail -f && Journalctl -f를 함께 결합하는 방법이 있습니까?

답변1

당신이 사용할 수있는:

journalctl -u service-name -f

-f, --follow

최신 저널 항목만 표시하고 저널에 추가되는 새 항목을 계속해서 인쇄합니다.

여기에는 이 답변을 다른 답변과 구별하기 위해 "서비스 이름"을 추가했습니다. 텍스트 대신 실제 서비스 이름을 바꿀 수 있습니다 service-name.

답변2

당신은 할 수로그 항목을 다음으로 전달하세요.잡지:

systemd-cat tail -f /tmp/myapp.log /var/log/postgresql.log

그런 다음 ...을 사용하십시오 journalctl -f. Mark가 언급했듯이 이것은 모든 저널 항목을 인쇄합니다.


이러한 로그와 특정 단위의 메시지만 필터링하는 한 가지 방법은 다른 파일을 사용하는 것입니다 SYSLOG_IDENTIFIER. 즉, 단위 파일을 편집하고 해당 [Service]섹션 아래에 예를 들어 다음을 추가하는 것입니다.

SyslogIdentifier=my_stuff

장치를 다시 시작하고 systemd-cat동일한 식별자로 실행

systemd-cat -t my_stuff tail -f /tmp/myapp.log /var/log/postgresql.log

마지막으로 해당 특정 식별자에 대해서만 로그를 쿼리합니다.

journalctl -f -t my_stuff

답변3

bash를 사용할 수 있다면 사용할 수 있습니다프로세스 교체매개변수 중 하나로 tail:

tail -f /tmp/myapp.log /var/log/postgresql/postgresql.main.log <(journalctl -f)

답변4

사용일기의 끝:

journaltail --unit pgpool.service /tmp/myapp.log /var/log/postgresql/postgresql.main.log

나는 stackoverflow et al에서 해결책을 찾은 후 한 시간 전에 스크립트를 정리했습니다.

관련 정보