logger.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. package waiter
  2. import (
  3. "context"
  4. "fmt"
  5. "github.com/aws/smithy-go/logging"
  6. "github.com/aws/smithy-go/middleware"
  7. )
  8. // Logger is the Logger middleware used by the waiter to log an attempt
  9. type Logger struct {
  10. // Attempt is the current attempt to be logged
  11. Attempt int64
  12. }
  13. // ID representing the Logger middleware
  14. func (*Logger) ID() string {
  15. return "WaiterLogger"
  16. }
  17. // HandleInitialize performs handling of request in initialize stack step
  18. func (m *Logger) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) (
  19. out middleware.InitializeOutput, metadata middleware.Metadata, err error,
  20. ) {
  21. logger := middleware.GetLogger(ctx)
  22. logger.Logf(logging.Debug, fmt.Sprintf("attempting waiter request, attempt count: %d", m.Attempt))
  23. return next.HandleInitialize(ctx, in)
  24. }
  25. // AddLogger is a helper util to add waiter logger after `SetLogger` middleware in
  26. func (m Logger) AddLogger(stack *middleware.Stack) error {
  27. return stack.Initialize.Insert(&m, "SetLogger", middleware.After)
  28. }