Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Golang Logrus show filename and line number
package logger
import (
"fmt"
"path"
"runtime"
"github.com/sirupsen/logrus"
)
// ContextHook ...
type ContextHook struct{}
// Levels ...
func (hook ContextHook) Levels() []logrus.Level {
return logrus.AllLevels
}
// Fire ...
func (hook ContextHook) Fire(entry *logrus.Entry) error {
if pc, file, line, ok := runtime.Caller(10); ok {
funcName := runtime.FuncForPC(pc).Name()
entry.Data["source"] = fmt.Sprintf("%s:%v:%s", path.Base(file), line, path.Base(funcName))
}
return nil
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment