实时输出日志
实时读取日志文件,并输出到命令行或其他操作; 本次演示将日志最后一行实时打印;
安装tail
go get github.com/hpcloud/tail
基本使用
package main
import (
"fmt"
"github.com/hpcloud/tail"
"log"
"os"
"time"
)
func main() {
tailf()
}
func tailf() {
//定义log文件路径
logPaht := "./xxx.log"
//创建log文件
create, _ := os.Create(logPaht) //create 如果文件存在会清空
defer create.Close()
//定义初始化tail配置
config := tail.Config{
ReOpen: true,
Poll: true,
Follow: true,
Location: &tail.SeekInfo{Offset: 0,Whence: 2},//从文件末尾读取
}
file, err := tail.TailFile(logPaht, config)
if err != nil {
log.Println("初始化tail失败!")
return
}
var (
msg *tail.Line
ok bool
)
for {
msg, ok = <-file.Lines
if !ok {
log.Println("读取日志失败!")
time.Sleep(time.Second)
continue
}
fmt.Println("msg:", msg.Text)
}
}