From 098dbe6ff4f59652181c8e0e3873fbfcf0e65ea3 Mon Sep 17 00:00:00 2001 From: kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com> Date: Tue, 19 Jul 2022 09:47:55 +0100 Subject: [chore] use our own logging implementation (#716) * first commit Signed-off-by: kim * replace logging with our own log library Signed-off-by: kim * fix imports Signed-off-by: kim * fix log imports Signed-off-by: kim * add license text Signed-off-by: kim * fix package import cycle between config and log package Signed-off-by: kim * fix empty kv.Fields{} being passed to WithFields() Signed-off-by: kim * fix uses of log.WithFields() with whitespace issues and empty slices Signed-off-by: kim * *linter related grumbling* Signed-off-by: kim * gofmt the codebase! also fix more log.WithFields() formatting issues Signed-off-by: kim * update testrig code to match new changes Signed-off-by: kim * fix error wrapping in non fmt.Errorf function Signed-off-by: kim * add benchmarking of log.Caller() vs non-cached Signed-off-by: kim * fix syslog tests, add standard build tags to test runner to ensure consistency Signed-off-by: kim * make syslog tests more robust Signed-off-by: kim * fix caller depth arithmatic (is that how you spell it?) Signed-off-by: kim * update to use unkeyed fields in kv.Field{} instances Signed-off-by: kim * update go-kv library Signed-off-by: kim * update libraries list Signed-off-by: kim * fuck you linter get nerfed Signed-off-by: kim Co-authored-by: tobi <31960611+tsmethurst@users.noreply.github.com> --- internal/transport/controller.go | 4 ++-- internal/transport/derefinstance.go | 19 ++++++++----------- internal/transport/transport.go | 13 +++++++------ 3 files changed, 17 insertions(+), 19 deletions(-) (limited to 'internal/transport') diff --git a/internal/transport/controller.go b/internal/transport/controller.go index 45eb4fd79..255932d5d 100644 --- a/internal/transport/controller.go +++ b/internal/transport/controller.go @@ -29,12 +29,12 @@ import ( "codeberg.org/gruf/go-byteutil" "codeberg.org/gruf/go-cache/v2" - "github.com/sirupsen/logrus" "github.com/superseriousbusiness/activity/pub" "github.com/superseriousbusiness/activity/streams" "github.com/superseriousbusiness/gotosocial/internal/config" "github.com/superseriousbusiness/gotosocial/internal/db" "github.com/superseriousbusiness/gotosocial/internal/federation/federatingdb" + "github.com/superseriousbusiness/gotosocial/internal/log" ) // Controller generates transports for use in making federation requests to other servers. @@ -73,7 +73,7 @@ func NewController(db db.DB, federatingDB federatingdb.DB, clock pub.Clock, clie // Transport cache has TTL=1hr freq=1m c.cache.SetTTL(time.Hour, false) if !c.cache.Start(time.Minute) { - logrus.Panic("failed to start transport controller cache") + log.Panic("failed to start transport controller cache") } return c diff --git a/internal/transport/derefinstance.go b/internal/transport/derefinstance.go index 35b088b88..c43625a0b 100644 --- a/internal/transport/derefinstance.go +++ b/internal/transport/derefinstance.go @@ -28,19 +28,16 @@ import ( "net/url" "strings" - "github.com/sirupsen/logrus" - "github.com/superseriousbusiness/gotosocial/internal/api" apimodel "github.com/superseriousbusiness/gotosocial/internal/api/model" "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" "github.com/superseriousbusiness/gotosocial/internal/id" + "github.com/superseriousbusiness/gotosocial/internal/log" "github.com/superseriousbusiness/gotosocial/internal/util" "github.com/superseriousbusiness/gotosocial/internal/validate" ) func (t *transport) DereferenceInstance(ctx context.Context, iri *url.URL) (*gtsmodel.Instance, error) { - l := logrus.WithField("func", "DereferenceInstance") - var i *gtsmodel.Instance var err error @@ -48,26 +45,26 @@ func (t *transport) DereferenceInstance(ctx context.Context, iri *url.URL) (*gts // This will provide the most complete picture of an instance, and avoid unnecessary api calls. // // This will only work with Mastodon-api compatible instances: Mastodon, some Pleroma instances, GoToSocial. - l.Debugf("trying to dereference instance %s by /api/v1/instance", iri.Host) + log.Debugf("trying to dereference instance %s by /api/v1/instance", iri.Host) i, err = dereferenceByAPIV1Instance(ctx, t, iri) if err == nil { - l.Debugf("successfully dereferenced instance using /api/v1/instance") + log.Debugf("successfully dereferenced instance using /api/v1/instance") return i, nil } - l.Debugf("couldn't dereference instance using /api/v1/instance: %s", err) + log.Debugf("couldn't dereference instance using /api/v1/instance: %s", err) // If that doesn't work, try to dereference using /.well-known/nodeinfo. // This will involve two API calls and return less info overall, but should be more widely compatible. - l.Debugf("trying to dereference instance %s by /.well-known/nodeinfo", iri.Host) + log.Debugf("trying to dereference instance %s by /.well-known/nodeinfo", iri.Host) i, err = dereferenceByNodeInfo(ctx, t, iri) if err == nil { - l.Debugf("successfully dereferenced instance using /.well-known/nodeinfo") + log.Debugf("successfully dereferenced instance using /.well-known/nodeinfo") return i, nil } - l.Debugf("couldn't dereference instance using /.well-known/nodeinfo: %s", err) + log.Debugf("couldn't dereference instance using /.well-known/nodeinfo: %s", err) // we couldn't dereference the instance using any of the known methods, so just return a minimal representation - l.Debugf("returning minimal representation of instance %s", iri.Host) + log.Debugf("returning minimal representation of instance %s", iri.Host) id, err := id.NewRandomULID() if err != nil { return nil, fmt.Errorf("error creating new id for instance %s: %s", iri.Host, err) diff --git a/internal/transport/transport.go b/internal/transport/transport.go index 22dfbeb9a..80710a519 100644 --- a/internal/transport/transport.go +++ b/internal/transport/transport.go @@ -31,11 +31,12 @@ import ( "time" errorsv2 "codeberg.org/gruf/go-errors/v2" + "codeberg.org/gruf/go-kv" "github.com/go-fed/httpsig" - "github.com/sirupsen/logrus" "github.com/superseriousbusiness/activity/pub" "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" "github.com/superseriousbusiness/gotosocial/internal/httpclient" + "github.com/superseriousbusiness/gotosocial/internal/log" ) // Transport wraps the pub.Transport interface with some additional functionality for fetching remote media. @@ -90,11 +91,11 @@ func (t *transport) do(r *http.Request, signer func(*http.Request) error, retryO backoff := time.Second * 2 // Start a log entry for this request - l := logrus.WithFields(logrus.Fields{ - "pubKeyID": t.pubKeyID, - "method": r.Method, - "url": r.URL.String(), - }) + l := log.WithFields(kv.Fields{ + {"pubKeyID", t.pubKeyID}, + {"method", r.Method}, + {"url", r.URL.String()}, + }...) for i := 0; i < maxRetries; i++ { // Reset signing header fields -- cgit v1.3