"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
}