Stail - 通过系统级的命令(如`tail -f`)来循环显示文件尾部数据

541 阅读1分钟

介绍

Stail是一款基于监听系统级命令来循环输出文件末尾数据的一款golang组件,可用于实时日志输出等功能,而对于golang中常用的tail组件都是使用fsnotify来实现的,因此从底层实现并不一样。

使用方法

func useSTail(filepath string, tailLine int) {
    st, err := stail.New(stail.Options{})
    if err != nil {
        fmt.Println(err)
        return
    }
    si, err := st.Tail(filepath, tailLine, func(content string) {
        fmt.Print(fmt.Sprintf("获取到内容: %s", content))
    })
    if err != nil {
        fmt.Println(err)
        return
    }
    time.AfterFunc(time.Second*10, func() {
        err = si.Close() // 10s之后关闭获取通道
    }
    si.Watch()
}

开源地址

github.com/Licoy/stail