本文整理汇总了Golang中github.com/spf13/afero.File.Seek方法的典型用法代码示例。如果您正苦于以下问题:Golang File.Seek方法的具体用法?Golang File.Seek怎么用?Golang File.Seek使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/spf13/afero.File
的用法示例。
在下文中一共展示了File.Seek方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: startNewFile
func (t *Tailer) startNewFile(f afero.File, seekStart bool) error {
fi, err := f.Stat()
if err != nil {
// Stat failed, log error and return.
logErrors.Add(f.Name(), 1)
return fmt.Errorf("Failed to stat %q: %s", f.Name(), err)
}
switch m := fi.Mode(); {
case m&os.ModeType == 0:
if seekStart {
f.Seek(0, os.SEEK_SET)
} else {
f.Seek(0, os.SEEK_END)
}
err = t.w.Add(f.Name())
if err != nil {
return fmt.Errorf("Adding a change watch failed on %q: %s", f.Name(), err)
}
// In case the new log has been written to already, attempt to read the
// first lines.
t.partials[f.Name()], err = t.read(f, "")
if err != nil {
if err == io.EOF {
// Don't worry about EOF on first read, that's expected.
break
}
return err
}
case m&os.ModeType == os.ModeNamedPipe:
go t.readForever(f)
default:
return fmt.Errorf("Can't open files with mode %v: %s", m&os.ModeType, f.Name())
}
t.filesLock.Lock()
t.files[f.Name()] = f
t.filesLock.Unlock()
glog.Infof("Tailing %s", f.Name())
return nil
}