golang tailf日誌組件的基本使用

git上log日誌組件
https://github.com/hpcloud/tail/blob/master/tail.go

我們寫個test來測試下這個組件

package main

import (
   "fmt"
   "time"

   "github.com/hpcloud/tail"
)

// tailf的用法示例

func main() {
   fileName := "./my.log"
   config := tail.Config{
      ReOpen:    true,                                 // 重新打開
      Follow:    true,                                 // 是否跟隨
      Location:  &tail.SeekInfo{Offset: 0, Whence: 2}, // 從文件的哪個地方開始讀
      MustExist: false,                                // 文件不存在不報錯
      Poll:      true,
   }
   tails, err := tail.TailFile(fileName, config)
   if err != nil {
      fmt.Println("tail file failed, err:", err)
      return
   }
   var (
      line *tail.Line
      ok   bool
   )
   for {
      line, ok = <-tails.Lines
      if !ok {
         fmt.Printf("tail file close reopen, filename:%s\n", tails.Filename)
         time.Sleep(time.Second)
         continue
      }
      fmt.Println("line:", line.Text)
   }
}

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章