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에 작성되었습니다.