diff options
Diffstat (limited to 'internal/io')
| -rw-r--r-- | internal/io/dlog/dlog.go | 5 | ||||
| -rw-r--r-- | internal/io/dlog/loggers/file.go | 7 | ||||
| -rw-r--r-- | internal/io/dlog/loggers/stdout.go | 2 | ||||
| -rw-r--r-- | internal/io/fs/readfile.go | 20 | ||||
| -rw-r--r-- | internal/io/fs/readfilelcontext.go | 19 |
5 files changed, 21 insertions, 32 deletions
diff --git a/internal/io/dlog/dlog.go b/internal/io/dlog/dlog.go index c5ab8f8..258fb68 100644 --- a/internal/io/dlog/dlog.go +++ b/internal/io/dlog/dlog.go @@ -3,7 +3,6 @@ package dlog import ( "context" "fmt" - "io/ioutil" "os" "path/filepath" "runtime" @@ -225,14 +224,14 @@ func (d *DLog) Mapreduce(table string, data map[string]interface{}) string { // level|date-time|process|caller|cpus|goroutines|cgocalls|loadavg|uptime|MAPREDUCE:TABLE|key=value|... var loadAvg string - if loadAvgBytes, err := ioutil.ReadFile("/proc/loadavg"); err == nil { + if loadAvgBytes, err := os.ReadFile("/proc/loadavg"); err == nil { tmp := string(loadAvgBytes) s := strings.SplitN(tmp, " ", 2) loadAvg = s[0] } var uptime string - if uptimeBytes, err := ioutil.ReadFile("/proc/uptime"); err == nil { + if uptimeBytes, err := os.ReadFile("/proc/uptime"); err == nil { tmp := string(uptimeBytes) s := strings.SplitN(tmp, ".", 2) i, _ := strconv.ParseInt(s[0], 10, 64) diff --git a/internal/io/dlog/loggers/file.go b/internal/io/dlog/loggers/file.go index 6a09353..8e567bc 100644 --- a/internal/io/dlog/loggers/file.go +++ b/internal/io/dlog/loggers/file.go @@ -12,8 +12,6 @@ import ( "github.com/mimecast/dtail/internal/config" ) -type fileWriter struct{} - type fileMessageBuf struct { now time.Time message string @@ -124,9 +122,10 @@ func (f *file) write(m *fileMessageBuf) { writer = f.getWriter(f.strategy.FileBase) } - writer.WriteString(m.message) + // Don't report any error, we won't be able to log it anyway! + _, _ = writer.WriteString(m.message) if m.nl { - writer.WriteByte('\n') + _ = writer.WriteByte('\n') } } diff --git a/internal/io/dlog/loggers/stdout.go b/internal/io/dlog/loggers/stdout.go index ef30855..b024243 100644 --- a/internal/io/dlog/loggers/stdout.go +++ b/internal/io/dlog/loggers/stdout.go @@ -69,4 +69,4 @@ func (s *stdout) Rotate() { // This is empty because it isn't doing anything but has to satisfy the interface. } -func (stdout) SupportsColors() bool { return true } +func (*stdout) SupportsColors() bool { return true } diff --git a/internal/io/fs/readfile.go b/internal/io/fs/readfile.go index 669f99f..dc1d8ea 100644 --- a/internal/io/fs/readfile.go +++ b/internal/io/fs/readfile.go @@ -116,23 +116,19 @@ func (f *readFile) makeReader() (*bufio.Reader, *os.File, error) { return f.makeFileReader() } -func (f *readFile) makeFileReader() (*bufio.Reader, *os.File, error) { - var reader *bufio.Reader - fd, err := os.Open(f.filePath) - if err != nil { - return reader, fd, err +func (f *readFile) makeFileReader() (reader *bufio.Reader, fd *os.File, err error) { + if fd, err = os.Open(f.filePath); err != nil { + return } if f.seekEOF { - fd.Seek(0, io.SeekEnd) + if _, err = fd.Seek(0, io.SeekEnd); err != nil { + return + } } reader, err = f.makeCompressedFileReader(fd) - if err != nil { - return reader, fd, err - } - - return reader, fd, nil + return } func (f *readFile) makePipeReader() (*bufio.Reader, *os.File, error) { @@ -249,7 +245,7 @@ func (f *readFile) truncated(fd *os.File) (bool, error) { dlog.Common.Debug(f.filePath, "File truncation check") // Can not seek currently open FD. - currentPosition, err := fd.Seek(0, os.SEEK_CUR) + currentPosition, err := fd.Seek(0, io.SeekCurrent) if err != nil { return true, err } diff --git a/internal/io/fs/readfilelcontext.go b/internal/io/fs/readfilelcontext.go index 44ce17d..87d59d6 100644 --- a/internal/io/fs/readfilelcontext.go +++ b/internal/io/fs/readfilelcontext.go @@ -31,22 +31,17 @@ type ltxState struct { func (f *readFile) filterWithoutLContext(ctx context.Context, rawLines <-chan *bytes.Buffer, lines chan<- *line.Line, re regex.Regex) { - for { - select { - case rawLine, ok := <-rawLines: - f.updatePosition() - if !ok { + for rawLine := range rawLines { + f.updatePosition() + if newLine, ok := f.transmittable(rawLine, len(lines), cap(lines), re); ok { + select { + case lines <- newLine: + case <-ctx.Done(): return } - if newLine, ok := f.transmittable(rawLine, len(lines), cap(lines), re); ok { - select { - case lines <- newLine: - case <-ctx.Done(): - return - } - } } } + f.updatePosition() } // Filter log lines matching a given regular expression, however with local grep context. |
