"expvar"
        "fmt"
        "io"
+       "log/slog"
        "math"
        "net"
        "net/http"
        event  sync.Cond
        closed chansync.SetOnce
 
-       config *ClientConfig
-       logger log.Logger
+       config  *ClientConfig
+       logger  log.Logger
+       slogger *slog.Logger
 
        peerID         PeerID
        defaultStorage *storage.Client
                logger = logger.WithFilterLevel(log.Debug)
        }
        cl.logger = logger.WithValues(cl)
+       cl.slogger = cl.config.Slogger
+       if cl.slogger == nil {
+               cl.slogger = slog.Default()
+       }
 }
 
 func (cl *Client) announceKey() int32 {
        t.networkingEnabled.Set()
        ihHex := t.InfoHash().HexString()
        t.logger = cl.logger.WithDefaultLevel(log.Debug).WithNames(ihHex).WithContextText(ihHex)
+       t._slogger = cl.slogger
        t.sourcesLogger = t.logger.WithNames("sources")
        if opts.ChunkSize == 0 {
                opts.ChunkSize = defaultChunkSize
 
 
 import (
        "context"
+       "log/slog"
        "net"
        "net/http"
        "net/url"
        DisableIPv4      bool
        DisableIPv4Peers bool
        // Perform logging and any other behaviour that will help debug.
-       Debug  bool `help:"enable debugging"`
-       Logger log.Logger
+       Debug   bool `help:"enable debugging"`
+       Logger  log.Logger
+       Slogger *slog.Logger
 
        // Used for torrent sources and webseeding if set.
        WebTransport http.RoundTripper
 
        connStats ConnStats
        counters  TorrentStatCounters
 
-       cl     *Client
-       logger log.Logger
+       cl       *Client
+       logger   log.Logger
+       _slogger *slog.Logger
 
        networkingEnabled      chansync.Flag
        dataDownloadDisallowed chansync.Flag
                        t:               t,
                        lookupTrackerIp: t.cl.config.LookupTrackerIp,
                        stopCh:          make(chan struct{}),
-                       logger:          t.logger.WithNames("tracker").Slogger().With("urlKey", u.String()),
+                       logger:          t.slogger().With("name", "tracker", "urlKey", u.String()),
                }
                go newAnnouncer.Run()
                return newAnnouncer
 }
 
 func (t *Torrent) slogger() *slog.Logger {
-       return t.logger.Slogger()
+       return t._slogger
 }