단일 파일을 사용한 Python 로깅(함수 이름, 파일 이름, 줄 번호)

| | | | | | | | | | | |

응용 프로그램이 어떻게 작동하는지 배우려고 합니다. 그리고 이를 위해 로그 출력에 메시지를 보내는 줄 번호(코드 내)와 함수 이름을 기록하는 것을 목표로 각 함수 본문의 첫 번째 줄에 디버그 명령을 삽입하고 있습니다. 마지막으로 이 응용 프로그램은 많은 파일로 구성되어 있으므로 응용 프로그램의 제어 흐름을 더 잘 이해할 수 있도록 단일 로그 파일을 만들고 싶습니다.

제가 아는 것은 다음과 같습니다.

  1. 함수 이름을 가져오기 위해 function_name.__name__을 사용할 수 있지만 function_name을 사용하고 싶지 않습니다(일반 Log .info("Message") in the body of all functions) C에서 __func__ 매크로를 사용하여 이 작업을 수행할 수 있다는 것을 알고 있지만 파이썬에 대해서는 잘 모르겠습니다.

  2. 파일 이름과 줄 번호를 얻기 위해 내 응용 프로그램이 Python locals() 함수를 사용하고 있지만 예: options = "LOG.debug("%(flag)s : %(flag_get)s" % locals())를 완전히 인식하지 못했으며 LOG.info와 같이 사용하여 시도했습니다. ("My message %s" % locals()){"self": <__main__.Class_name object at 0x22f8cd0>}와 같은 것을 생성합니다. 이에 대한 의견이 있으십니까?

  3. 로깅을 사용하고 처리기를 추가하여 파일에 기록하는 방법을 알고 있지만 단일 파일을 사용하여 기록할 수 있는지 확실하지 않습니다. 모든 로그 메시지는 프로젝트의 함수 호출 순서가 정확합니다.

도움을 주시면 감사하겠습니다.

감사합니다!