func main() { var token = flag.String("token", "nil", "log token") var logfile = flag.String("logfile", "/tmp/foo.txt", "log file to follow") var seekInfoOnStart = &tail.SeekInfo{Offset: 0, Whence: os.SEEK_END} flag.Parse() fmt.Println("using token: ", *token) if _, err := os.Stat(*logfile); os.IsNotExist(err) { fmt.Printf("no such file or directory: %s\n", *logfile) return } le, err := le_go.Connect(*token) // replace with token if err != nil { panic(err) } defer le.Close() t, err := tail.TailFile(*logfile, tail.Config{Follow: true, ReOpen: true, Location: seekInfoOnStart, Logger: tail.DiscardingLogger}) if err == nil { for line := range t.Lines { le.Println(line.Text) } } }
func NewTailer(filename string, token string) (*Tailer, error) { t, err := tail.TailFile(filename, tail.Config{ Follow: true, Location: seekInfoOnStart, Logger: tail.DiscardingLogger, }) if err != nil { return nil, err } le, err := le_go.Connect(token) if err != nil { panic(err) } defer le.Close() return &Tailer{ Logger: le, Tail: t, path: filename, token: token, }, nil }