golang - 호출 측의 func 이름 알기
아래 글은 golang을 공부할 목적으로 웹에서 본 글들을 정리한 것이다.
pc, _, _, _ := runtime.Caller(1)
caller_name := runtime.FuncForPC(pc).Name();
로 할 수 있다.
DEBUG 플래그가 있으면:
import (
"log"
"runtime"
"github.com/user/app/env"
)
func Debug(format string, args ...interface{}) {
if env.DEBUG {
pc, _, _, _ := runtime.Caller(1)
caller_name := runtime.FuncForPC(pc).Name();
log.Printf(caller_name + ": " + format, args...)
}
}
로 디버그 로그를 출력하기 좋다.
이 글은 2018-11-20에 작성되었습니다.