README
¶
Go package for tail-ing files
This is a fork of the tail library from https://github.com/influxdata/tail
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.
Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( ErrStop = errors.New("Tail should now stop") ErrDeletedNotReOpen = errors.New("File was deleted, tail should now stop") )
Functions ¶
Types ¶
type Config ¶
type Config struct { // File-specifc Location *SeekInfo // Seek to this location before tailing ReOpen bool // Reopen recreated files (tail -F) MustExist bool // Fail early if the file does not exist Poll bool // Poll for file changes instead of using inotify Pipe bool // Is a named pipe (mkfifo) RateLimiter limiter // Generic IO Follow bool // Continue looking for new lines (tail -f) MaxLineSize int // If non-zero, split longer lines into multiple lines // Logger, when nil, is set to tail.DefaultLogger // To disable logging: set field to tail.DiscardingLogger Logger logger // Special handling for utf16 IsUTF16 bool }
Config is used to specify how a file must be tailed.
type Line ¶
type Tail ¶
type Tail struct { Filename string Lines chan *Line Config tomb.Tomb // provides: Done, Kill, Dying // contains filtered or unexported fields }
func TailFile ¶
TailFile begins tailing the file. Output stream is made available via the `Tail.Lines` channel. To handle errors during tailing, invoke the `Wait` or `Err` method after finishing reading from the `Lines` channel.
func (*Tail) Cleanup ¶
func (tail *Tail) Cleanup()
Cleanup removes inotify watches added by the tail package. This function is meant to be invoked from a process's exit handler. Linux kernel may not automatically remove inotify watches after the process exits.
func (*Tail) Tell ¶
Return the file's current position, like stdio's ftell(). But this value is not very accurate. it may readed one line in the chan(tail.Lines), so it may lost one line.
func (*Tail) UnexpectedError ¶
A wrapper of tomb Err()