1. 程式人生 > 程式設計 >go日誌系統logrus顯示檔案和行號的操作

go日誌系統logrus顯示檔案和行號的操作

logrus預設不支援顯示檔名和行號,不太友好,但是在v1.2.0版本已經修復。可以通過setReportCaller設定即可顯示檔名和行號

go日誌系統logrus顯示檔案和行號的操作

補充知識: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顯示檔案和行號的操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。