README
¶
This is repo is forked from the dormant upstream repo at hpcloud. This fork adds support for go modules, updates the dependencies, adds features and fixes bugs. Go 1.9 is the oldest compiler release supported.
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})
if err != nil {
panic(err)
}
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/nxadm/tail/...
Windows support
This package needs assistance for full Windows support.
Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // DefaultLogger is used when Config.Logger == nil DefaultLogger = log.New(os.Stderr, "", log.LstdFlags) // DiscardingLogger can be used to disable logging output DiscardingLogger = log.New(ioutil.Discard, "", 0) )
var (
ErrStop = errors.New("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 *ratelimiter.LeakyBucket
// 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
}
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.