go日誌系統logrus顯示檔案和行號的操作
阿新 • • 發佈:2020-11-11
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顯示檔案和行號的操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。