summaryrefslogtreecommitdiff
path: root/internal/io
diff options
context:
space:
mode:
Diffstat (limited to 'internal/io')
-rw-r--r--internal/io/dlog/dlog.go5
-rw-r--r--internal/io/dlog/loggers/file.go7
-rw-r--r--internal/io/dlog/loggers/stdout.go2
-rw-r--r--internal/io/fs/readfile.go20
-rw-r--r--internal/io/fs/readfilelcontext.go19
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.