...

Package tail

import "github.com/hpcloud/tail"
Overview
Index
Subdirectories

Overview ▾

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")
)

func OpenFile

func OpenFile(name string) (file *os.File, err error)

type Config

Config is used to specify how a file must be tailed.

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
}

type Line

type Line struct {
    Text string
    Time time.Time
    Err  error // Error from tail
}

func NewLine

func NewLine(text string) *Line

NewLine returns a Line with present time.

type SeekInfo

SeekInfo represents arguments to `os.Seek`

type SeekInfo struct {
    Offset int64
    Whence int // os.SEEK_*
}

type Tail

type Tail struct {
    Filename string
    Lines    chan *Line
    Config

    tomb.Tomb // provides: Done, Kill, Dying
    // contains filtered or unexported fields
}

func TailFile

func TailFile(filename string, config Config) (*Tail, error)

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) Stop

func (tail *Tail) Stop() error

Stop stops the tailing activity.

func (*Tail) StopAtEOF

func (tail *Tail) StopAtEOF() error

StopAtEOF stops tailing as soon as the end of the file is reached.

func (*Tail) Tell

func (tail *Tail) Tell() (offset int64, err error)

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.

Subdirectories

Name Synopsis
..
cmd
gotail
ratelimiter Package ratelimiter implements the Leaky Bucket ratelimiting algorithm with memcached and in-memory backends.
util
watch
winfile