28 lines
559 B
Go
28 lines
559 B
Go
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)
|
|
}
|