From: Matt Joiner Date: Tue, 6 May 2025 06:06:36 +0000 (+1000) Subject: Add ClientConfig.Slogger X-Git-Tag: v1.59.0~176 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=f26e229bfa915b1e9589060be0347320859a53c7;p=btrtrc.git Add ClientConfig.Slogger --- diff --git a/client.go b/client.go index 8549a6a3..62f6aadf 100644 --- a/client.go +++ b/client.go @@ -10,6 +10,7 @@ import ( "expvar" "fmt" "io" + "log/slog" "math" "net" "net/http" @@ -62,8 +63,9 @@ type Client struct { event sync.Cond closed chansync.SetOnce - config *ClientConfig - logger log.Logger + config *ClientConfig + logger log.Logger + slogger *slog.Logger peerID PeerID defaultStorage *storage.Client @@ -203,6 +205,10 @@ func (cl *Client) initLogger() { 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 { @@ -1389,6 +1395,7 @@ func (cl *Client) newTorrentOpt(opts AddTorrentOpts) (t *Torrent) { 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 diff --git a/config.go b/config.go index 2f69819c..2955f555 100644 --- a/config.go +++ b/config.go @@ -2,6 +2,7 @@ package torrent import ( "context" + "log/slog" "net" "net/http" "net/url" @@ -104,8 +105,9 @@ type ClientConfig struct { 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 diff --git a/torrent.go b/torrent.go index fda5b8e9..116507fa 100644 --- a/torrent.go +++ b/torrent.go @@ -63,8 +63,9 @@ type Torrent struct { connStats ConnStats counters TorrentStatCounters - cl *Client - logger log.Logger + cl *Client + logger log.Logger + _slogger *slog.Logger networkingEnabled chansync.Flag dataDownloadDisallowed chansync.Flag @@ -2048,7 +2049,7 @@ func (t *Torrent) startScrapingTrackerWithInfohash(u *url.URL, urlStr string, sh 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 @@ -3399,5 +3400,5 @@ func (t *Torrent) Complete() chansync.ReadOnlyFlag { } func (t *Torrent) slogger() *slog.Logger { - return t.logger.Slogger() + return t._slogger }