Signed-off-by: oppiliappan me@oppi.li
+14
-10
spindle/models/logger.go
+14
-10
spindle/models/logger.go
···
9
9
"strings"
10
10
)
11
11
12
-
type WorkflowLogger struct {
12
+
type WorkflowLogger interface {
13
+
Close() error
14
+
DataWriter(idx int, stream string) io.Writer
15
+
ControlWriter(idx int, step Step, stepStatus StepStatus) io.Writer
16
+
}
17
+
18
+
type FileWorkflowLogger struct {
13
19
file *os.File
14
20
encoder *json.Encoder
15
21
mask *SecretMask
16
22
}
17
23
18
-
func NewWorkflowLogger(baseDir string, wid WorkflowId, secretValues []string) (*WorkflowLogger, error) {
24
+
func NewFileWorkflowLogger(baseDir string, wid WorkflowId, secretValues []string) (*FileWorkflowLogger, error) {
19
25
path := LogFilePath(baseDir, wid)
20
-
21
26
file, err := os.OpenFile(path, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
22
27
if err != nil {
23
28
return nil, fmt.Errorf("creating log file: %w", err)
24
29
}
25
-
26
-
return &WorkflowLogger{
30
+
return &FileWorkflowLogger{
27
31
file: file,
28
32
encoder: json.NewEncoder(file),
29
33
mask: NewSecretMask(secretValues),
···
35
39
return logFilePath
36
40
}
37
41
38
-
func (l *WorkflowLogger) Close() error {
42
+
func (l *FileWorkflowLogger) Close() error {
39
43
return l.file.Close()
40
44
}
41
45
42
-
func (l *WorkflowLogger) DataWriter(idx int, stream string) io.Writer {
46
+
func (l *FileWorkflowLogger) DataWriter(idx int, stream string) io.Writer {
43
47
return &dataWriter{
44
48
logger: l,
45
49
idx: idx,
···
47
51
}
48
52
}
49
53
50
-
func (l *WorkflowLogger) ControlWriter(idx int, step Step, stepStatus StepStatus) io.Writer {
54
+
func (l *FileWorkflowLogger) ControlWriter(idx int, step Step, stepStatus StepStatus) io.Writer {
51
55
return &controlWriter{
52
56
logger: l,
53
57
idx: idx,
···
57
61
}
58
62
59
63
type dataWriter struct {
60
-
logger *WorkflowLogger
64
+
logger *FileWorkflowLogger
61
65
idx int
62
66
stream string
63
67
}
···
75
79
}
76
80
77
81
type controlWriter struct {
78
-
logger *WorkflowLogger
82
+
logger *FileWorkflowLogger
79
83
idx int
80
84
step Step
81
85
stepStatus StepStatus
History
1 round
0 comments
oppi.li
submitted
#0
1 commit
expand
collapse
spindle/models: interface-ify WorkflowLogger
Signed-off-by: oppiliappan <me@oppi.li>
2/3 failed, 1/3 success
expand
collapse
expand 0 comments
pull request successfully merged