@@ -193,6 +193,20 @@ func (logger *WebsocketLiveloggerWithFallback) Close() error {
193193 return logger .replace (& errorLogger {})
194194}
195195
196+ func (logger * WebsocketLiveloggerWithFallback ) sendLogFallback (err error , wrapper * protocol.TimelineRecordFeedLinesWrapper ) {
197+ if ! logger .ForceWebsock {
198+ if logger .Connection .Trace {
199+ fmt .Printf ("Failed to reconnect to websocket %s, fallback to vsslogger\n " , err .Error ())
200+ }
201+ currentLogger = logger .initializeVssLogger ()
202+ if currentLogger == nil {
203+ return fmt .Errorf ("failed to initialize VSS logger after websocket reconnect failure: %w" , err )
204+ }
205+ return currentLogger .SendLog (wrapper )
206+ }
207+ return err
208+ }
209+
196210func (logger * WebsocketLiveloggerWithFallback ) SendLog (wrapper * protocol.TimelineRecordFeedLinesWrapper ) error {
197211 currentLogger := getPointer (logger .currentLogger .Load ())
198212 if currentLogger == nil {
@@ -208,31 +222,11 @@ func (logger *WebsocketLiveloggerWithFallback) SendLog(wrapper *protocol.Timelin
208222 }
209223 if wslogger , ok := currentLogger .(* WebsocketLivelogger ); ok {
210224 if err = wslogger .Connect (); err != nil {
211- if ! logger .ForceWebsock {
212- if logger .Connection .Trace {
213- fmt .Printf ("Failed to reconnect to websocket %s, fallback to vsslogger\n " , err .Error ())
214- }
215- currentLogger = logger .initializeVssLogger ()
216- if currentLogger == nil {
217- return fmt .Errorf ("failed to initialize VSS logger after websocket reconnect failure: %w" , err )
218- }
219- return currentLogger .SendLog (wrapper )
220- }
221- return err
225+ return logger .sendLogFallback (err , wrapper )
222226 }
223227 err = currentLogger .SendLog (wrapper )
224228 if err != nil {
225- if ! logger .ForceWebsock {
226- if logger .Connection .Trace {
227- fmt .Printf ("Failed to send webconsole log %s, fallback to vsslogger\n " , err .Error ())
228- }
229- currentLogger = logger .initializeVssLogger ()
230- if currentLogger == nil {
231- return fmt .Errorf ("failed to initialize VSS logger after websocket send failure: %w" , err )
232- }
233- return currentLogger .SendLog (wrapper )
234- }
235- return err
229+ return logger .sendLogFallback (err , wrapper )
236230 }
237231 return nil
238232 }
0 commit comments