package logging import ( "os" "runtime" "strconv" "strings" log "github.com/sirupsen/logrus" ) func init() { log.SetFormatter(&log.JSONFormatter{}) log.SetOutput(os.Stdout) } func Logger() *log.Entry { pc, file, line, ok := runtime.Caller(1) if !ok { panic("Could not get context info for logger!") } filename := file[strings.LastIndex(file, "/")+1:] + ":" + strconv.Itoa(line) funcname := runtime.FuncForPC(pc).Name() fn := funcname[strings.LastIndex(funcname, ".")+1:] return log.WithField("file", filename).WithField("function", fn) }