Python 추적 로그 파일을 어떻게 만듭니까? 다양한 방법을 시도함

Python 추적 로그 파일을 어떻게 만듭니까? 다양한 방법을 시도함

저는 syslog와 같은 로그 파일을 추적하기 위해 Python을 얻으려고 합니다.

읽기 모드에서 파일을 열려고 했지만 다른 프로세스가 파일에 쓰고 있는지 전혀 인식하지 못했습니다. popen과 실제 "tail -f"를 사용하고 popen 프로세스를 선택하도록 등록하면 Python은 작성된 모든 것을 읽을 수 있습니다. python systemd 모듈을 사용하면 systemd가 콘텐츠에 응답하도록 할 수 있지만 이 방법 대신 다른 방법이 있는지, 읽기 위해 파일을 열고 지속적으로 1024바이트를 읽으려고 하면 작동하지 않는 이유가 무엇인지 궁금합니다.

답변1

syslog와 같은 로그 파일을 다시 열지 않고도 작동해야 합니다. Tail은 또한 필요하지 않은 경우(필요하지 않은 경우) 파일을 다시 열지 않습니다. 단지 일반 파일을 폴링해야 하고 데이터를 기다리는 것은 파이프와 소켓 등에서만 수행될 수 있습니다.

무엇이 잘못되었는지, 어떻게 해결하는지 알려주기 위해 작동하지 않는 코드 예제를 게시하는 것이 좋습니다. 또한 달성하려는 목표는 이해하기 쉽지 않습니다. 데이터를 사용할 수 있을 때까지 읽기를 선택하거나 차단하려는 경우 이는 일반 파일에서는 불가능합니다(설계상 파일이며 파이프 등이 아닙니다). 유일한 가능성은 이를 달성하기 위해 inotify에 의존하거나 간단한 폴링을 사용하는 것입니다. (이것은 tail과 같은 효과를 가집니다.)

관련 정보