package main import ( "fmt" "github.com/hpcloud/tail" "path" "runtime" "time" ) func main() { logAbsolutePath := `./../logdir/log.txt` _, filename, _, _ := runtime.Caller(0) fmt.Println(filename) datapath := path.Join(path.Dir(filename), logAbsolutePath) fmt.Println("datapath:",datapath) tailFile, err := tail.TailFile(datapath, tail.Config{ // 文件夹被移除或被或被打包,需要重新打开 ReOpen: true, //实时跟踪 Follow: true, // 如果出现移除,保存上次读取位置,避免重新读取 Location: &tail.SeekInfo{Offset: 0, Whence: 2}, //支持文件不存在 MustExist: false, Poll: true, }) if err != nil { fmt.Println("tail filen err:", err) } for true { msg, ok := <- tailFile.Lines if !ok { fmt.Println("tail file close open, filename:%s\n",tailFile.Filename) time.Sleep(100* time.Millisecond) continue } // 只打印text fmt.Println("msg:", msg.Text) } }