@@ -8,14 +8,14 @@ import (
8
8
"fmt"
9
9
"io"
10
10
"os"
11
- "strings"
12
11
13
12
"infini.sh/agent/lib/reader"
14
13
"infini.sh/agent/lib/reader/linenumber"
15
14
"infini.sh/agent/lib/reader/multiline"
16
15
"infini.sh/agent/lib/reader/readfile"
17
16
"infini.sh/agent/lib/reader/readfile/encoding"
18
17
"infini.sh/agent/lib/reader/readjson"
18
+ "infini.sh/framework/core/errors"
19
19
)
20
20
21
21
type Harvester struct {
@@ -30,8 +30,8 @@ type Harvester struct {
30
30
31
31
func NewHarvester (path string , offset int64 ) (* Harvester , error ) {
32
32
f , err := readOpen (path )
33
- if err != nil {
34
- return nil , err
33
+ if f == nil || err != nil {
34
+ return nil , errors . Errorf ( "failed to open file(%s),%v" , path , err )
35
35
}
36
36
_ , err = f .Seek (offset , io .SeekStart )
37
37
if err != nil {
@@ -48,6 +48,9 @@ func NewHarvester(path string, offset int64) (*Harvester, error) {
48
48
}
49
49
h .encodingFactory = encodingFactory
50
50
h .encoding , err = h .encodingFactory (f )
51
+ if err != nil {
52
+ return nil , err
53
+ }
51
54
return h , nil
52
55
}
53
56
@@ -60,6 +63,9 @@ func readOpen(path string) (*os.File, error) {
60
63
func (h * Harvester ) NewJsonFileReader (pattern string , showLineNumber bool ) (reader.Reader , error ) {
61
64
var r reader.Reader
62
65
var err error
66
+ if h == nil || h .file == nil {
67
+ return nil , fmt .Errorf ("file is nil" )
68
+ }
63
69
64
70
encReaderMaxBytes := h .config .MaxBytes * 4
65
71
r , err = readfile .NewEncodeReader (h .file , readfile.Config {
@@ -97,6 +103,9 @@ func (h *Harvester) NewLogFileReader(pattern string, showLineNumber bool) (reade
97
103
var r reader.Reader
98
104
var err error
99
105
106
+ if h == nil || h .file == nil {
107
+ return nil , fmt .Errorf ("file is nil" )
108
+ }
100
109
encReaderMaxBytes := h .config .MaxBytes * 4
101
110
r , err = readfile .NewEncodeReader (h .file , readfile.Config {
102
111
Codec : h .encoding ,
@@ -125,16 +134,6 @@ func (h *Harvester) NewLogFileReader(pattern string, showLineNumber bool) (reade
125
134
return h .reader , nil
126
135
}
127
136
128
- // NewPlainTextRead
129
- // 返回一行内容,即使一条日志包含多行(如错误堆栈),也只返回一行。
130
- func (h * Harvester ) NewPlainTextRead (showLineNumber bool ) (reader.Reader , error ) {
131
- if strings .HasSuffix (h .file .Name (), ".json" ) {
132
- return h .NewJsonFileReader ("" , showLineNumber )
133
- } else {
134
- return h .NewLogFileReader ("" , showLineNumber )
135
- }
136
- }
137
-
138
137
func (h * Harvester ) Close () error {
139
138
err := h .reader .Close ()
140
139
if err != nil {
0 commit comments