diff options
author | 2023-02-17 12:02:29 +0100 | |
---|---|---|
committer | 2023-02-17 12:02:29 +0100 | |
commit | 68e6d08c768b789987a753d42f66caf73ce10ee1 (patch) | |
tree | 1c9eb6da6c326266d653de80684c3aec58922638 /cmd/gotosocial/action/server/server.go | |
parent | [bugfix] Set 'discoverable' properly on API accounts (#1511) (diff) | |
download | gotosocial-68e6d08c768b789987a753d42f66caf73ce10ee1.tar.xz |
[feature] Add a request ID and include it in logs (#1476)
This adds a lightweight form of tracing to GTS. Each incoming request is
assigned a Request ID which we then pass on and log in all our log
lines. Any function that gets called downstream from an HTTP handler
should now emit a requestID=value pair whenever it logs something.
Co-authored-by: kim <grufwub@gmail.com>
Diffstat (limited to 'cmd/gotosocial/action/server/server.go')
-rw-r--r-- | cmd/gotosocial/action/server/server.go | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/cmd/gotosocial/action/server/server.go b/cmd/gotosocial/action/server/server.go index 89486a5dc..388a88533 100644 --- a/cmd/gotosocial/action/server/server.go +++ b/cmd/gotosocial/action/server/server.go @@ -62,7 +62,7 @@ import ( // Start creates and starts a gotosocial server var Start action.GTSAction = func(ctx context.Context) error { - _, err := maxprocs.Set(maxprocs.Logger(log.Debugf)) + _, err := maxprocs.Set(nil) if err != nil { return fmt.Errorf("failed to set CPU limits from cgroup: %s", err) } @@ -156,6 +156,9 @@ var Start action.GTSAction = func(ctx context.Context) error { // attach global middlewares which are used for every request router.AttachGlobalMiddleware( + middleware.AddRequestID(config.GetRequestIDHeader()), + // note: hooks adding ctx fields must be ABOVE + // the logger, otherwise won't be accessible. middleware.Logger(), middleware.UserAgent(), middleware.CORS(), @@ -237,13 +240,13 @@ var Start action.GTSAction = func(ctx context.Context) error { sigs := make(chan os.Signal, 1) signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM) sig := <-sigs // block until signal received - log.Infof("received signal %s, shutting down", sig) + log.Infof(ctx, "received signal %s, shutting down", sig) // close down all running services in order if err := gts.Stop(ctx); err != nil { return fmt.Errorf("error closing gotosocial service: %s", err) } - log.Info("done! exiting...") + log.Info(ctx, "done! exiting...") return nil } |