특정 단위의 저널 출력을 특정 파일로 보내는 방법은 무엇입니까?


12

Arch Linux에서 저널에 로그 정보를 출력하는 여러 데몬이 (시스템 단위로) 실행되는 시스템이 있습니다. 해당 단위 파일 중 일부의 저널 출력을 위치가 지정된 별도의 텍스트 파일로 보내 기본적으로 단위 하위 세트에 대한 로그 파일을 작성하려고합니다. 어떻게하면 되나요?


관련 질문은 unix.stackexchange.com/questions/468444 입니다.
JdeBP

답변:


10

업스트림 (stdout / stderr을 개별 파일로 리디렉션)으로 가능하지 않고 원하지 않는 것처럼 보입니다 (예 : http://lists.freedesktop.org/archives/systemd-devel/2012-March/004705.html 참조 -전체 스레드 읽기) 이것이 어떻게 작동하는지 컨텍스트 정보.

당신이 할 수있는 일은 syslog에 로그하는 것이고, 그 방법으로 개별 파일에 쓰는 것입니다. 또는 다른 방법으로, 장치가 로그 자체를 작성할 수있는 프로그램을 호출하면 해당 파일을 사용하여 파일에 로그합니다.

시스템 서비스의 stdout / stderr보기 를 볼 수도 있습니다.

현재 설정으로 이미 할 수있는
journalctl -u yourunitname > yourlogfile_for_yourunitname
것은 단위 "yourunitname"에 대한 전체 저널 출력을 파일로 보내는 것입니다.

후자의 경우 위에서 언급 한 메일 링리스트 스레드에서 Lennart의 힌트를 살펴 봐야합니다.

최신 시스템 버전 systemd-journalctl -o cat _SYSTEMD_UNIT=postgresql.service에서는 실제 메시지 만 포함하고 다른 것은 포함하지 않는 매우 간단한 출력을 만들어야합니다. "-f"를 넘겨서 이것을 생방송으로 만들 수도 있습니다. "

편집 : 실제로, 최신 시스템 버전의 경우 명령은 journalctl 일 뿐이며 위에서 말할 수 있듯이 위에서 언급 한 긴 명령은 동일 하며 출력을 "따라"(꼬리 f 또는 꼬리 -f journalctl -u yourunitname와 같이) 할 수도 -f있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.