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
}

View File

@@ -142,7 +142,7 @@ func serve(args []string) error {
sm.loadPushCerts()
sm.setupSCEP(logger)
sm.setupCheckinService()
sm.setupPushService()
sm.setupPushService(logger)
sm.setupCommandService()
sm.setupCommandQueue(logger)
sm.setupDEPSync()
@@ -483,7 +483,7 @@ type config struct {
scepCACertPath string
PushService *push.Service // bufford push
pushService *nanopush.Push
pushService nanopush.Service
checkinService checkin.Service
connectService connect.ConnectService
enrollService enroll.Service
@@ -628,7 +628,7 @@ func (c *config) setupConfigStore() {
}
func (c *config) setupPushService() {
func (c *config) setupPushService(logger log.Logger) {
if c.err != nil {
return
}
@@ -654,11 +654,16 @@ after:
c.err = err
return
}
c.pushService, err = nanopush.New(db, c.configDB, c.pubclient, opts...)
service, err := nanopush.New(db, c.configDB, c.pubclient, opts...)
if err != nil {
c.err = err
c.err = errors.Wrap(err, "starting micromdm push service")
return
}
c.pushService = nanopush.NewLoggingService(
service,
log.With(level.Info(logger), "component", "push"),
)
}
func (c *config) setupEnrollmentService() {