mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-11-28 00:53:32 -06:00
[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>
This commit is contained in:
parent
b5993095fa
commit
68e6d08c76
118 changed files with 813 additions and 591 deletions
|
|
@ -39,23 +39,23 @@ func (f *filter) StatusBoostable(ctx context.Context, targetStatus *gtsmodel.Sta
|
|||
|
||||
// direct messages are never boostable, even if they're visible
|
||||
if targetStatus.Visibility == gtsmodel.VisibilityDirect {
|
||||
log.Trace("status is not boostable because it is a DM")
|
||||
log.Trace(ctx, "status is not boostable because it is a DM")
|
||||
return false, nil
|
||||
}
|
||||
|
||||
// the original account should always be able to boost its own non-DM statuses
|
||||
if requestingAccount.ID == targetStatus.Account.ID {
|
||||
log.Trace("status is boostable because author is booster")
|
||||
log.Trace(ctx, "status is boostable because author is booster")
|
||||
return true, nil
|
||||
}
|
||||
|
||||
// if status is followers-only and not the author's, it is not boostable
|
||||
if targetStatus.Visibility == gtsmodel.VisibilityFollowersOnly {
|
||||
log.Trace("status not boostable because it is followers-only")
|
||||
log.Trace(ctx, "status not boostable because it is followers-only")
|
||||
return false, nil
|
||||
}
|
||||
|
||||
// otherwise, status is as boostable as it says it is
|
||||
log.Trace("defaulting to status.boostable value")
|
||||
log.Trace(ctx, "defaulting to status.boostable value")
|
||||
return *targetStatus.Boostable, nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,7 +30,8 @@ import (
|
|||
)
|
||||
|
||||
func (f *filter) StatusHometimelineable(ctx context.Context, targetStatus *gtsmodel.Status, timelineOwnerAccount *gtsmodel.Account) (bool, error) {
|
||||
l := log.WithFields(kv.Fields{{"statusID", targetStatus.ID}}...)
|
||||
l := log.WithContext(ctx).
|
||||
WithFields(kv.Fields{{"statusID", targetStatus.ID}}...)
|
||||
|
||||
// don't timeline statuses more than 5 min in the future
|
||||
maxID, err := id.NewULIDFromTime(time.Now().Add(5 * time.Minute))
|
||||
|
|
|
|||
|
|
@ -30,7 +30,8 @@ import (
|
|||
)
|
||||
|
||||
func (f *filter) StatusPublictimelineable(ctx context.Context, targetStatus *gtsmodel.Status, timelineOwnerAccount *gtsmodel.Account) (bool, error) {
|
||||
l := log.WithFields(kv.Fields{{"statusID", targetStatus.ID}}...)
|
||||
l := log.WithContext(ctx).
|
||||
WithFields(kv.Fields{{"statusID", targetStatus.ID}}...)
|
||||
|
||||
// don't timeline statuses more than 5 min in the future
|
||||
maxID, err := id.NewULIDFromTime(time.Now().Add(5 * time.Minute))
|
||||
|
|
|
|||
|
|
@ -29,7 +29,8 @@ import (
|
|||
)
|
||||
|
||||
func (f *filter) StatusVisible(ctx context.Context, targetStatus *gtsmodel.Status, requestingAccount *gtsmodel.Account) (bool, error) {
|
||||
l := log.WithFields(kv.Fields{{"statusID", targetStatus.ID}}...)
|
||||
l := log.WithContext(ctx).
|
||||
WithFields(kv.Fields{{"statusID", targetStatus.ID}}...)
|
||||
|
||||
// Fetch any relevant accounts for the target status
|
||||
const getBoosted = true
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue