파이썬 로깅 모듈에는 공통 패턴 (ex1, ex2)이 있습니다. 각 모듈에서 각 파이썬 모듈에 대해 새로운 로거 객체를 가져옵니다.왜 각 새 모듈에 새 로거 객체가 생깁니 까?
나는 맹목적으로 패턴을 따르는 팬이 아니므로 조금 더 이해하고 싶습니다.
왜 새 모듈마다 새 로거 객체가 생깁니 까?
누구나 동일한 루트 로거를 사용하고 %(module)s
으로 포맷터를 구성하지 않는 이유는 무엇입니까?
이 패턴이 필수/필수 항목 인 경우 (즉, 성능상의 이유로 [1]) 예가 있습니까?
[1] 다중 스레드 Python 프로그램에서 여러 로깅 개체를 사용하여 해결되는 숨겨진 동기화 문제가 있습니까?
관련 질문이 있지만 아마도 새로운 stackoverflow 질문이 필요합니다. 동일한 콘솔, 스트림 및/또는 파일 처리기를 사용하는 여러 로깅 개체가있는 경우 숨겨진 동기화 문제가 있습니다 (하나의 스레드 만이 한 번에 파일 하나씩)? –
'logging'은 스레드 안전성을 갖도록 정의되어 있으므로 loggers *는 자신의 로그 기록을 위해 잠금을 사용합니다. 즉, 다중 스레드 환경에서 사용하는 것이 안전하다는 의미입니다. 그러나 유닉스 시스템에서 다중 처리를 사용할 때 잘 알려진 문제이다 : 기본적으로'fork '는 잠금을 복사하지 않고 드문 경우에 교착 상태를 초래할 수있다. [here] (http://stackoverflow.com/questions/24509650/deadlock-with-logging-multiprocess-multithread-python-script)를 참조하십시오. – Bakuriu