动态查看文件内容
第三方库tail
github.com/hpcloud/tail
使用
package mainimport ("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.Lineok bool)for {line, ok = <-tails.Linesif !ok {fmt.Printf("tail file close reopen, filename:%s\n", tails.Filename)time.Sleep(time.Second)continue}fmt.Println("line:", line.Text)}
}