]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Upgrade to simplified logger
authorMatt Joiner <anacrolix@gmail.com>
Wed, 21 Aug 2019 10:44:12 +0000 (20:44 +1000)
committerMatt Joiner <anacrolix@gmail.com>
Wed, 21 Aug 2019 10:44:12 +0000 (20:44 +1000)
client.go
config.go
go.mod
go.sum
portfwd.go
torrent.go
torrent_test.go

index 85b78c4cae1e0190df3b3d72abe1c9078e48580c..52e48bb4c59e0c0d7400db2df70c1b10b6709102 100644 (file)
--- a/client.go
+++ b/client.go
@@ -52,7 +52,7 @@ type Client struct {
        closed missinggo.Event
 
        config *ClientConfig
-       logger *log.Logger
+       logger log.Logger
 
        peerID         PeerID
        defaultStorage *storage.Client
@@ -154,16 +154,15 @@ func (cl *Client) WriteStatus(_w io.Writer) {
 
 const debugLogValue = log.Debug
 
-func (cl *Client) debugLogFilter(m *log.Msg) bool {
-       if !cl.config.Debug {
-               _, ok := m.Values()[debugLogValue]
-               return !ok
+func (cl *Client) debugLogFilter(m log.Msg) bool {
+       if cl.config.Debug {
+               return true
        }
-       return true
+       return !m.HasValue(debugLogValue)
 }
 
 func (cl *Client) initLogger() {
-       cl.logger = log.Default.Clone().AddValue(cl).AddFilter(log.NewFilter(cl.debugLogFilter))
+       cl.logger = cl.config.Logger.WithValues(cl).WithFilter(cl.debugLogFilter)
 }
 
 func (cl *Client) announceKey() int32 {
@@ -1036,7 +1035,7 @@ func (cl *Client) newTorrent(ih metainfo.Hash, specStorage storage.ClientImpl) (
                },
                duplicateRequestTimeout: 1 * time.Second,
        }
-       t.logger = cl.logger.Clone().AddValue(t)
+       t.logger = cl.logger.WithValues(t)
        t.setChunkSize(defaultChunkSize)
        return
 }
index 584866dd6f4c5a7ff529a4cd76c0c2cd0008c220..9f0fdc3ffd9a98748d140d89776d014c29b295c3 100644 (file)
--- a/config.go
+++ b/config.go
@@ -8,6 +8,7 @@ import (
 
        "github.com/anacrolix/dht/v2"
        "github.com/anacrolix/dht/v2/krpc"
+       "github.com/anacrolix/log"
        "github.com/anacrolix/missinggo"
        "github.com/anacrolix/missinggo/conntrack"
        "github.com/anacrolix/missinggo/expect"
@@ -84,7 +85,8 @@ type ClientConfig struct {
        DisableIPv4      bool
        DisableIPv4Peers bool
        // Perform logging and any other behaviour that will help debug.
-       Debug bool `help:"enable debugging"`
+       Debug  bool `help:"enable debugging"`
+       Logger log.Logger
 
        // HTTPProxy defines proxy for HTTP requests.
        // Format: func(*Request) (*url.URL, error),
@@ -167,6 +169,7 @@ func NewDefaultClientConfig() *ClientConfig {
                CryptoSelector: mse.DefaultCryptoSelector,
                CryptoProvides: mse.AllSupportedCrypto,
                ListenPort:     42069,
+               Logger:         log.Default,
        }
        cc.ConnTracker.SetNoMaxEntries()
        cc.ConnTracker.Timeout = func(conntrack.Entry) time.Duration { return 0 }
diff --git a/go.mod b/go.mod
index ba973b75cc29ddae01de8bae1cbc6c4d7c630dd6..1d36cf6339d0d0777dc9e11aa1c81371c3eb133f 100644 (file)
--- a/go.mod
+++ b/go.mod
@@ -5,10 +5,11 @@ require (
        github.com/RoaringBitmap/roaring v0.4.18 // indirect
        github.com/alexflint/go-arg v1.1.0
        github.com/anacrolix/dht/v2 v2.0.1
-       github.com/anacrolix/envpprof v0.0.0-20180404065416-323002cec2fa
+       github.com/anacrolix/envpprof v1.0.0
        github.com/anacrolix/go-libutp v1.0.2
-       github.com/anacrolix/log v0.2.0
-       github.com/anacrolix/missinggo v1.1.0
+       github.com/anacrolix/log v0.2.2-0.20190821103111-726085c46ea1
+       github.com/anacrolix/missinggo v1.2.1
+       github.com/anacrolix/missinggo/perf v1.0.0
        github.com/anacrolix/mmsg v1.0.0 // indirect
        github.com/anacrolix/sync v0.0.0-20180808010631-44578de4e778
        github.com/anacrolix/tagflag v0.0.0-20180803105420-3a8ff5428f76
diff --git a/go.sum b/go.sum
index 6cff345defaec54e3da82a77ff61372340cb5f91..69af77ec118a73eb9ca11b89d468dbaf7d5f48e5 100644 (file)
--- a/go.sum
+++ b/go.sum
@@ -14,19 +14,24 @@ github.com/anacrolix/dht/v2 v2.0.1 h1:gOHJ+OKqJ4Eb48OYStZm4AlWr1/nSA2TWlzb/+t36S
 github.com/anacrolix/dht/v2 v2.0.1/go.mod h1:GbTT8BaEtfqab/LPd5tY41f3GvYeii3mmDUK300Ycyo=
 github.com/anacrolix/envpprof v0.0.0-20180404065416-323002cec2fa h1:xCaATLKmn39QqLs3tUZYr6eKvezJV+FYvVOLTklxK6U=
 github.com/anacrolix/envpprof v0.0.0-20180404065416-323002cec2fa/go.mod h1:KgHhUaQMc8cC0+cEflSgCFNFbKwi5h54gqtVn8yhP7c=
+github.com/anacrolix/envpprof v1.0.0 h1:AwZ+mBP4rQ5f7JSsrsN3h7M2xDW/xSE66IPVOqlnuUc=
+github.com/anacrolix/envpprof v1.0.0/go.mod h1:KgHhUaQMc8cC0+cEflSgCFNFbKwi5h54gqtVn8yhP7c=
 github.com/anacrolix/go-libutp v0.0.0-20180522111405-6baeb806518d/go.mod h1:beQSaSxwH2d9Eeu5ijrEnHei5Qhk+J6cDm1QkWFru4E=
 github.com/anacrolix/go-libutp v1.0.2 h1:cL2SfTCO418V+DQRdMEW+RNfO2InLqW6PsSLqHwmGR4=
 github.com/anacrolix/go-libutp v1.0.2/go.mod h1:uIH0A72V++j0D1nnmTjjZUiH/ujPkFxYWkxQ02+7S0U=
 github.com/anacrolix/log v0.0.0-20180412014343-2323884b361d h1:G8ITVMWuQL4adKRC3A6aBOo0YFJYcmpS3JFQd+rZrn0=
 github.com/anacrolix/log v0.0.0-20180412014343-2323884b361d/go.mod h1:sf/7c2aTldL6sRQj/4UKyjgVZBu2+M2z9wf7MmwPiew=
-github.com/anacrolix/log v0.2.0 h1:LzaW6XTEk2zcmLZkcZPkJ2mDdnZkOdOTeBH7Kt81ouU=
-github.com/anacrolix/log v0.2.0/go.mod h1:sf/7c2aTldL6sRQj/4UKyjgVZBu2+M2z9wf7MmwPiew=
+github.com/anacrolix/log v0.2.2-0.20190821103111-726085c46ea1 h1:aaaFTLBK8GqKjl/3NAxmK3YPTl5zN65uiJzmf1bQT2g=
+github.com/anacrolix/log v0.2.2-0.20190821103111-726085c46ea1/go.mod h1:lWvLTqzAnCWPJA08T2HCstZi0L1y2Wyvm3FJgwU9jwU=
 github.com/anacrolix/missinggo v0.0.0-20180522035225-b4a5853e62ff/go.mod h1:b0p+7cn+rWMIphK1gDH2hrDuwGOcbB6V4VXeSsEfHVk=
 github.com/anacrolix/missinggo v0.0.0-20180725070939-60ef2fbf63df/go.mod h1:kwGiTUTZ0+p4vAz3VbAI5a30t2YbvemcmspjKwrAz5s=
 github.com/anacrolix/missinggo v0.2.1-0.20190310234110-9fbdc9f242a8 h1:E2Xb2SBsVzHJ1tNMW9QcckYEQcyBKz1ee8qVjeVRWys=
 github.com/anacrolix/missinggo v0.2.1-0.20190310234110-9fbdc9f242a8/go.mod h1:MBJu3Sk/k3ZfGYcS7z18gwfu72Ey/xopPFJJbTi5yIo=
-github.com/anacrolix/missinggo v1.1.0 h1:0lZbaNa6zTR1bELAIzCNmRGAtkHuLDPJqTiTtXoAIx8=
-github.com/anacrolix/missinggo v1.1.0/go.mod h1:MBJu3Sk/k3ZfGYcS7z18gwfu72Ey/xopPFJJbTi5yIo=
+github.com/anacrolix/missinggo v1.1.2-0.20190815015349-b888af804467/go.mod h1:MBJu3Sk/k3ZfGYcS7z18gwfu72Ey/xopPFJJbTi5yIo=
+github.com/anacrolix/missinggo v1.2.1 h1:0IE3TqX5y5D0IxeMwTyIgqdDew4QrzcXaaEnJQyjHvw=
+github.com/anacrolix/missinggo v1.2.1/go.mod h1:J5cMhif8jPmFoC3+Uvob3OXXNIhOUikzMt+uUjeM21Y=
+github.com/anacrolix/missinggo/perf v1.0.0 h1:7ZOGYziGEBytW49+KmYGTaNfnwUqP1HBsy6BqESAJVw=
+github.com/anacrolix/missinggo/perf v1.0.0/go.mod h1:ljAFWkBuzkO12MQclXzZrosP5urunoLS0Cbvb4V0uMQ=
 github.com/anacrolix/mmsg v0.0.0-20180515031531-a4a3ba1fc8bb h1:2Or5ccMoY4Kfao+WdL2w6tpY6ZEe+2VTVbIPd7A/Ajk=
 github.com/anacrolix/mmsg v0.0.0-20180515031531-a4a3ba1fc8bb/go.mod h1:x2/ErsYUmT77kezS63+wzZp8E3byYB0gzirM/WMBLfw=
 github.com/anacrolix/mmsg v1.0.0 h1:btC7YLjOn29aTUAExJiVUhQOuf/8rhm+/nWCMAnL3Hg=
index 27f8549e7f7b87697671332ce497e6cc8a2f8513..b8d70482aa80f21aa07c71df8af58a541796ef35 100644 (file)
@@ -1,10 +1,9 @@
 package torrent
 
 import (
-       "log"
        "time"
 
-       flog "github.com/anacrolix/log"
+       "github.com/anacrolix/log"
        "github.com/elgatito/upnp"
 )
 
@@ -28,7 +27,7 @@ func (cl *Client) forwardPort() {
        cl.unlock()
        ds := upnp.Discover(0, 2*time.Second)
        cl.lock()
-       flog.Default.Handle(flog.Fmsg("discovered %d upnp devices", len(ds)))
+       cl.logger.Printf("discovered %d upnp devices", len(ds))
        port := cl.incomingPeerPort()
        cl.unlock()
        for _, d := range ds {
index 4bf314bc6da5c52faaca10a766d6ca87f9e98225..d865ac605a955549d75701941c7cd3c2ef773ed2 100644 (file)
@@ -41,7 +41,7 @@ type Torrent struct {
        // alignment. See #262.
        stats  ConnStats
        cl     *Client
-       logger *log.Logger
+       logger log.Logger
 
        networkingEnabled bool
 
index 212838b53737d850567a9dff0e028a72be773fff..300929d3270110eb38d60bbef2bbbc2ccc09906c 100644 (file)
@@ -148,7 +148,7 @@ func TestEmptyFilesAndZeroPieceLengthWithMMapStorage(t *testing.T) {
 func TestPieceHashFailed(t *testing.T) {
        mi := testutil.GreetingMetaInfo()
        cl := new(Client)
-       cl.config = &ClientConfig{}
+       cl.config = TestingConfig()
        cl.initLogger()
        tt := cl.newTorrent(mi.HashInfoBytes(), badStorage{})
        tt.setChunkSize(2)