go日志系统logrus显示文件和行号的操作

logrus默认不支持显示文件名和行号,不太友好,但是在v1.2.0版本已经修复。可以通过setReportCaller设置即可显示文件名和行号

补充知识:logrus 的输出设置

O_RDONLY:只读模式(read-only)

O_WRONLY:只写模式(write-only)

O_RDWR:读写模式(read-write)

O_APPEND:追加模式(append)

O_CREATE:文件不存在就创建(create a new file if none exists.)

O_EXCL:与 O_CREATE 一起用,构成一个新建文件的功能,它要求文件必须不存在(used with O_CREATE, file must not exist)

O_SYNC:同步方式打开,即不使用缓存,直接写入硬盘 O_TRUNC:打开并清空文件

func initLogger() error {

logrusLogLevel, err := logrus.ParseLevel(*logLevel)

if err != nil {

return err

}

now := collectors.GetTime()

err1 := collectors.CreateDir("logs")

if err1 != nil {

return err1

}

f, err := os.OpenFile("logs/"+now, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0755)

if err != nil {

logrus.Fatal(err)

}

logrus.SetOutput(f)

logrus.SetLevel(logrusLogLevel)

logrus.SetReportCaller(true)

logrus.SetFormatter(&logrus.TextFormatter{TimestampFormat: "2006-01-02 15:04:05"})

logrus.Info("init log done")

return nil

}

func GetTime() string {

return time.Now().Format("2006-01-02")

}

func CreateDir(string2 string) error {

err := os.MkdirAll(string2, 0755)

if err != nil {

return err

}

return nil

}

func PathExists(path string) bool {

_, err := os.Stat(path)

if err == nil {

return true

}

if os.IsExist(err) {

return true

}

return false

}

以上这篇go日志系统logrus显示文件和行号的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

以上是 go日志系统logrus显示文件和行号的操作 的全部内容, 来源链接: utcz.com/p/235649.html

回到顶部