Skip to content

Commit 3112bd1

Browse files
committed
Fix to separate write and send processing methods
1 parent b81248d commit 3112bd1

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

Diff for: logger.go

+14-8
Original file line numberDiff line numberDiff line change
@@ -111,36 +111,42 @@ func (logger *Logger) disconnect() error {
111111
return err
112112
}
113113

114-
const maxWriteAttempts = 3
114+
const maxWriteAttempts = 2
115115

116-
func (logger *Logger) send() error {
117-
messages := logger.buf.Remove()
116+
func (logger *Logger) write(messages []*Message) error {
118117
if len(messages) == 0 {
119118
return nil
120119
}
121120
var data []byte
122121
for _, m := range messages {
123122
data = append(data, m.buf.Bytes()...)
124123
}
125-
126124
var err error
127125
for i := 0; i < maxWriteAttempts; i++ {
128126
err = logger.connect()
129127
if err == nil {
130128
_, err := logger.conn.Write(data)
131129
if err == nil {
132-
for _, m := range messages {
133-
putMessage(m)
134-
}
135130
break
136131
}
137132
}
138133
logger.disconnect()
139134
}
135+
return err
136+
}
137+
138+
func (logger *Logger) send() error {
139+
messages := logger.buf.Remove()
140+
141+
err := logger.write(messages)
140142
if err != nil {
141143
logger.buf.Back(messages)
144+
return err
142145
}
143-
return err
146+
for _, m := range messages {
147+
putMessage(m)
148+
}
149+
return nil
144150
}
145151

146152
func (logger *Logger) start() {

0 commit comments

Comments
 (0)