HP团队出的tail库,常用于日志收集
示例代码:
package main import ( "github.com/hpcloud/tail" "fmt" "time" ) func main() { filename := "./my.log" tailFile, err := tail.TailFile(filename, tail.Config{ ReOpen: true, Follow: true, Location: &tail.SeekInfo{Offset: 0, Whence: 2}, MustExist: false, Poll: true, }) if err != nil { fmt.Println("tail file err:", err) return } for true { msg, ok := <- tailFile.Lines if !ok { fmt.Printf("tail file close reopen, filename: %s ", tailFile.Filename) time.Sleep(100 * time.Millisecond) continue } fmt.Println("msg:", msg) } }