Go to file
Benoit Sigoure 0bc5f080e8 watch: Unsubscribe from fsnotify synchronously.
Calling watcher.Remove() from the run() goroutine is now problematic,
because with the change made in fsnotify/fsnotify#73 Remove() can now
take an arbitrary amount of time, which means we can deadlock if run()
is waiting for fsnotify to acknowledge the removal and fsnotify is
trying to send an unrelated Event.

So instead we now do part of the cleanup, including calling Remove(),
synchronously, in the goroutine trying to unsubscribe.

This fixes #75.  Thanks to Aaron Beitch for the fix.

Change-Id: I346c9eecc34b2378312b07b3c3efc41616b95380
2016-03-01 10:05:17 -08:00
cmd/gotail Fix imports 2015-09-30 17:50:49 +03:00
ratelimiter include License file of original code 2014-04-29 19:56:11 -07:00
util replace the alarmist panic with Fatal 2013-10-11 18:19:43 -07:00
watch watch: Unsubscribe from fsnotify synchronously. 2016-03-01 10:05:17 -08:00
winfile add FILE_SHARE_DELETE flag when opening file 2014-07-28 16:38:02 +03:00
.gitignore remove logyard references and update README 2012-10-17 11:56:54 -07:00
.travis.yml Add race detection on Travis CI 2016-01-05 10:07:56 +08:00
CHANGES.md change log entry for last PR 2015-07-03 14:27:12 -07:00
Dockerfile Fix imports 2015-09-30 17:50:49 +03:00
LICENSE.txt add license and copyright 2013-01-07 12:54:49 -08:00
Makefile Fix imports 2015-09-30 17:50:49 +03:00
README.md Update README.md 2015-12-18 15:33:59 -08:00
deps.json Fix tomb import 2014-06-14 23:39:34 -07:00
tail.go fix data race 2015-12-24 16:47:46 +08:00
tail_posix.go Merge branch 'openbsd' of https://github.com/ajacoutot/tail into ajacoutot-openbsd 2015-11-02 12:49:12 -08:00
tail_test.go fix block until exists function 2015-12-09 15:29:06 +08:00
tail_windows.go Fix imports 2015-09-30 17:50:49 +03:00

README.md

Build Status

Go package for tail-ing files

A Go package striving to emulate the features of the BSD tail program.

t, err := tail.TailFile("/var/log/nginx.log", tail.Config{Follow: true})
for line := range t.Lines {
    fmt.Println(line.Text)
}

See API documentation.

Log rotation

Tail comes with full support for truncation/move detection as it is designed to work with log rotation tools.

Installing

go get github.com/hpcloud/tail/...

Windows support

This package needs assistance for full Windows support.