응용 프로그램이 어떻게 작동하는지 배우려고합니다. 그리고이를 위해 각 함수 본문의 첫 번째 줄로 디버그 명령을 삽입하여 함수의 이름과 로그 출력에 메시지를 보내는 줄 번호 (코드 내)를 기록합니다. 마지막으로이 응용 프로그램은 많은 파일로 구성되어 있으므로 응용 프로그램의 제어 흐름을 더 잘 이해할 수 있도록 단일 로그 파일을 만들고 싶습니다.
내가 아는 것은 다음과 같습니다.
함수 이름을 얻기 위해 사용할 수는
function_name.__name__
있지만 function_name을 사용하고 싶지 않습니다 (Log.info("Message")
모든 함수의 본문에 제네릭 을 빠르게 복사하여 붙여 넣을 수 있음 ). 나는 이것이__func__
매크로를 사용하여 C에서 할 수 있다는 것을 알고 있지만 파이썬에 대해서는 잘 모르겠습니다.파일 이름과 줄 번호를 받고, 나는 것을 보았다 (나는 그렇게 생각) 내 응용 프로그램이 파이썬 사용하는
locals()
기능을하지만 예를 들어 완전히 인식하지 오전 구문에서 :options = "LOG.debug('%(flag)s : %(flag_get)s' % locals())
나는처럼 사용하여 시도LOG.info("My message %s" % locals())
하는 뭔가를 생산{'self': <__main__.Class_name object at 0x22f8cd0>}
. 이것에 대한 의견이 있으십니까?로깅을 사용하고 파일에 로깅하기 위해 처리기를 추가하는 방법을 알고 있지만 단일 파일을 사용하여 모든 로그 메시지를 프로젝트에서 함수 호출의 올바른 순서로 기록 할 수 있는지 확실하지 않습니다.
도움을 주시면 대단히 감사하겠습니다.
감사!
import pdb; pdb.set_trace()
다음 대화식으로 코드를 단계별 로 실행할 수 있습니다 . 프로그램 흐름을 추적하는 데 도움이 될 수 있습니다.