add logging middleware to push service (#262)

This commit is contained in:
Victor Vrantchan
2017-10-24 21:33:11 -04:00
committed by GitHub
parent dd189edfae
commit a100e7570d
2 changed files with 44 additions and 5 deletions

34
push/logging_service.go Normal file
View File

@@ -0,0 +1,34 @@
package push
import (
"context"
"time"
"github.com/go-kit/kit/log"
)
type loggingMiddleware struct {
logger log.Logger
next Service
}
func NewLoggingService(svc Service, logger log.Logger) loggingMiddleware {
return loggingMiddleware{
next: svc,
logger: logger,
}
}
func (mw loggingMiddleware) Push(ctx context.Context, udid string) (id string, err error) {
defer func(begin time.Time) {
_ = mw.logger.Log(
"method", "Push",
"udid", udid,
"err", err,
"took", time.Since(begin),
)
}(time.Now())
id, err = mw.next.Push(ctx, udid)
return
}