diff --git a/backend/playbackmanager.go b/backend/playbackmanager.go index 60df166..b4bece3 100644 --- a/backend/playbackmanager.go +++ b/backend/playbackmanager.go @@ -570,7 +570,7 @@ func (p *PlaybackManager) enqueueAutoplayTracks() { if len(tr.ArtistIDs) > 0 { similar, err := s.GetSimilarTracks(tr.ArtistIDs[0], p.cfg.EnqueueBatchSize) if err != nil { - log.Println("autoplay error: failed to get similar tracks: %v", err) + log.Printf("autoplay error: failed to get similar tracks: %v", err) } tracks = filterRecentlyPlayed(similar) } @@ -583,7 +583,7 @@ func (p *PlaybackManager) enqueueAutoplayTracks() { } byGenre, err := s.GetRandomTracks(g, p.cfg.EnqueueBatchSize) if err != nil { - log.Println("autoplay error: failed to get tracks by genre: %v", err) + log.Printf("autoplay error: failed to get tracks by genre: %v", err) } tracks = filterRecentlyPlayed(byGenre) if len(tracks) > 0 { @@ -598,7 +598,7 @@ func (p *PlaybackManager) enqueueAutoplayTracks() { // fallback to random tracks random, err := s.GetRandomTracks("", p.cfg.EnqueueBatchSize) if err != nil { - log.Println("autoplay error: failed to get random tracks: %v", err) + log.Printf("autoplay error: failed to get random tracks: %v", err) } tracks = filterRecentlyPlayed(random) } @@ -612,7 +612,7 @@ func (p *PlaybackManager) enqueueAutoplayTracks() { func (p *PlaybackManager) runCmdQueue(ctx context.Context) { logIfErr := func(action string, err error) { if err != nil { - log.Println("Playback error (%s): %v", action, err) + log.Printf("Playback error (%s): %v", action, err) } } for { diff --git a/backend/player/dlna/dlnaplayer.go b/backend/player/dlna/dlnaplayer.go index aa51a0a..cc32c5d 100644 --- a/backend/player/dlna/dlnaplayer.go +++ b/backend/player/dlna/dlnaplayer.go @@ -65,6 +65,8 @@ type DLNAPlayer struct { func NewDLNAPlayer(device *device.MediaRenderer) (*DLNAPlayer, error) { retry := retryablehttp.NewClient() retry.RetryMax = 3 + retry.RetryWaitMin = 100 * time.Millisecond + retry.Logger = retryLogger{} cli := retry.StandardClient() avt, err := device.AVTransportClient() @@ -97,8 +99,6 @@ func (d *DLNAPlayer) GetVolume() int { func (d *DLNAPlayer) PlayFile(urlstr string, meta mediaprovider.MediaItemMetadata) error { d.ensureSetupProxy() - log.Println("playing track " + meta.Name) - d.metaLock.Lock() d.curTrackMeta = meta d.metaLock.Unlock() @@ -268,16 +268,13 @@ func (d *DLNAPlayer) addURLToProxy(url string) string { func (d *DLNAPlayer) setTrackChangeTimer(dur time.Duration) { if d.timerActive.Swap(true) { // was active - log.Println("timer was active") d.resetChan <- dur - log.Println("and reset") return } if dur == 0 { d.timerActive.Store(false) return } - log.Println("starting timer") d.timer = time.NewTimer(dur) go func() { @@ -391,3 +388,24 @@ func (d *DLNAPlayer) handleRequest(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(os.Stderr, "Error copying response body:", err) } } + +type retryLogger struct{} + +func (retryLogger) Error(msg string, keysAndValues ...interface{}) { + log.Println(msg, keysAndValues) +} + +func (retryLogger) Info(msg string, keysAndValues ...interface{}) { + log.Println(msg, keysAndValues) +} + +func (retryLogger) Warn(msg string, keysAndValues ...interface{}) { + log.Println(msg, keysAndValues) +} + +func (retryLogger) Debug(msg string, keysAndValues ...interface{}) { + // log only retries, not every request + if strings.Contains(msg, "retrying request") { + log.Println(msg, keysAndValues) + } +}