python __FILE__ __LINE__ __func__ 대체

c에서는 아래와 같이 디버그 코드를 삽입한다

printf("%s %4d %s : \n", __FILE__, __LINE__, __func__);

python에서도 비슷하게 할 수 있는 방법을 찾아서 정리하였다.

import inspect
def logger(*msg):
print(':'.join([str(element) for element in inspect.stack()[1][1:4]]), end=' ')
print(msg)


다음과 같이 출력된다.

/home/sjpark/./sjpark.py:19:sjpark_func (2,)
좋네

수정 : ctrl+click 으로 쉽게 찾아갈수 있도록 file:line:func 형식으로 변경

호출할때 logger(f'{val = }') 형식으로 호출되면 val=값 으로 출력되어 더 보기 좋음
더 편리하게 logger 안에서 하는 방법까지는 힘들듯.

댓글

이 블로그의 인기 게시물

WSL2 Ubuntu 20.04 및 네트워크 설정

리눅스 멀티코어를 사용하는 tar 압축/해제

WSL에 X-Window로 Terminator 설치하고 Minicom까지