, 즉 의미파이썬 : 함수 호출의 내부 정보 자동 로깅
것은 이제 내가 먼저 다음 함수를 호출 기능 B를 작동 있다고 가정 해 봅시다 C, 함수 C의 호출은 시간 t = 1에서, B가 실행 D.를 작동하므로 I는 표준 출력이 원하는 : 표준 출력은가되도록, 시간 t = 2, B가 돌아왔다에서
Root: function A -> running properly, called B
2-nd: function B -> running properly
:
Root: function A -> running properly, B returned
시간 t = 3에서 10
는, A는 시간 t = 4에서 C. 불렀다, C가 표준 출력이어야 D. 요구했다 : 시간 t = 5에서
Root: function A -> running properly, B returned, called C
2-nd: function C -> running properly, called D
3-rd: function D -> running properly
는 D 반환. 시간 t = 6에서 C가 반환되었습니다. 표준 출력은 다음과 같아야 시간 t = 7에서
Root: function A -> running properly, B returned, C returned
이 기능 리턴 된 :
Root: function A -> Done
로거 객체를 생성하고 주위를 전달하는 것 외에도,이 문제를 자동화하는 더 우아한 방법은 무엇입니까? A 또는 B가 다중 스레드 프로세스 인 경우에는 어떻게됩니까?
모든 의견을 보내 주시면 감사하겠습니다. 고맙습니다!
'inspect' 모듈을 보았습니까? 이미 스택과 트레이스를 얻을 수 있습니다. –
전에 보지 못했습니다. 내가 읽었을 때 아마도 사용 가능할 것입니다. 그러나 나는 로깅의 깨끗한 방법을 원한다. inspect를 사용하면 모든 함수가 호출되기 전에 정보를 얻기 위해 함수 집합을 호출해야하는 것처럼 보입니다. 이것은 내장되어 있고 위대한 것을 제외하고는 로거 객체와 동일합니다. – Mai