파이썬의 구문 분석 로그에 tailer을 사용하지만 서버의 로그 회전이 손상된 경우 오류가 발생합니다. 대신에 어떤 결정을 사용할 수 있습니까? tail -f in popen - 파이썬적인 방식이 아닙니다.python, tailer 및 logrotate
1
A
답변
0
로그 회전 기능을 추가하는 것이 어렵지 않습니다. 예를 들어, 당신이있는 경우 :
for line in tailer.follow(open('test.txt')):
print line
주기적으로 다음 파일 이름의 존재를 확인하는 기능에 콜백을 추가 할 수 있습니다. 존재하는 경우 루프에서 빠져 나와 새 파일에서 시작하십시오. logrotate에 이벤트시
0
다음 일이 발생합니다
- 로그 파일의 아이 노드가 변경되지 않았습니다하지만 로그는 (예를 들어 log.out.1)
- logrotate에이 같은 이름의 새 파일을 만들어 새 이름으로 이름이 바뀌 었습니다 (log.out) (나는 잘 모르겠다 :-)
테일러 모듈은 여전히 오래된 파일 아이 노드를 볼 것입니다.
로그를 올바르게 기록하려면 로그 파일의 inode 값을 모니터링해야합니다. 이것이 '꼬리 -F'입니다.
당신이 소스에서 볼 수 있듯이
는 쇼핑몰을 운영 중이고 모듈은 소스 파일의 logrotation을 다음과 설계되지 않은 : 그것은http://code.activestate.com/recipes/157035/
조리법
를 기반으로하고 작업에 대한 unuseful입니다.소스 제조법에 대한 의견을 참조하십시오.
-
P.S. -F` 것`- 또는 래퍼 '꼬리 -f': 덧붙여
http://code.activestate.com/recipes/577398-tail-f-with-inode-monitor/
관련 문제
- 1. 파이썬 로깅 - logrotate 옵션
- 2. logrotate 구성 파일 개발 및 테스트
- 3. Redis logrotate 구성
- 4. logrotate 구성 파일에서 변수가 지원됩니까?
- 5. log4j가 주기적으로 로그 파일을 다시 열도록 할 수 있습니까? (logrotate)
- 6. Ubuntu 11.04에서 Python 2.7.1 및 Python 2.7.1+
- 7. python-gevent 및 python-daemon 관련 문제
- 8. $ PYTHONSTARTUP with python 2.7 및 python 3.2
- 9. netbeans 7.1 및 python
- 10. Python 및 Plone help
- 11. PyRo 및 python
- 12. Python 및 Opswat
- 13. Mercurial 및 Python 2.6
- 14. python __getattr__ 및 __name__
- 15. OpenCV, OpponentColorDescriptorExtractor 및 Python
- 16. Python AppEngine 및 HTML
- 17. Python urlib 및 인증
- 18. setfsuid() 및 python 2.5.4
- 19. Python 및 charset
- 20. Python 및 pubsubhubbub
- 21. Python 및 GCC 버전
- 22. Python 및 urllib
- 23. CGI, python 및 setgid
- 24. Python httplib 및 POST
- 25. python 및 UnboundLocalError
- 26. Python 및 Google Checkout
- 27. Pervasive 8 및 Python
- 28. python 및 mechanize.open()
- 29. Python PIL 및 StringIO
- 30. PhysFS 및 Python 임베딩
주위에 내 하나를 사용, 당신은'꼬리 -F'를 사용하지'꼬리 -f'를 필요 통지 파일 회전. – sarnold