我正在使用github.com/sirupsen/logrus登录我的 golang 脚本,但是我想获取记录消息的文件名和行号。我可以使用以下代码来获得它:
package main
import (
"fmt"
"os"
"runtime"
"strings"
"github.com/sirupsen/logrus"
)
func GetLogger() (*logrus.Logger, *os.File) {
log := logrus.New()
log.SetReportCaller(true)
file, err := os.OpenFile("info.log", os.O_CREATE|os.O_APPEND, 0644)
if err != nil {
log.Fatal(err)
}
log.Out = file
log.Formatter = &logrus.TextFormatter{
CallerPrettyfier: func(f *runtime.Frame) (string, string) {
repopath := fmt.Sprintf("%s/src/github.com/bob", os.Getenv("GOPATH"))
filename := strings.Replace(f.File, repopath, "", -1)
return fmt.Sprintf("%s()", f.Function), fmt.Sprintf("%s:%d", filename, f.Line)
},
}
return log, file
}
但是,这会以以下格式提供日志:
time="2020-04-02T11:43:19+05:30" level=info msg=Hello func="main.main()" file="D:/.../main.go:13"
但我想要的登录格式如下:
Apr 02 00:00:00 INFO main.go:20 : Hello this is a log line
如何编写自定义格式化程序来获得这个?
尚方宝剑之说
繁星coding
猛跑小猪
相关分类