| 123456789101112131415161718192021222324252627282930313233343536 | 
							- package handling
 
- import (
 
- 	"time"
 
- 	"github.com/go-kit/kit/log"
 
- 	shipping "github.com/longjoy/micro-go-course/section19/cargo/model"
 
- )
 
- type loggingService struct {
 
- 	logger log.Logger
 
- 	next   Service
 
- }
 
- // NewLoggingService returns a new instance of a logging Service.
 
- func NewLoggingService(logger log.Logger, s Service) Service {
 
- 	return &loggingService{logger, s}
 
- }
 
- func (s *loggingService) RegisterHandlingEvent(completed time.Time, id shipping.TrackingID, voyageNumber shipping.VoyageNumber,
 
- 	unLocode shipping.UNLocode, eventType shipping.HandlingEventType) (res bool, err error) {
 
- 	defer func(begin time.Time) {
 
- 		s.logger.Log(
 
- 			"method", "register_incident",
 
- 			"tracking_id", id,
 
- 			"location", unLocode,
 
- 			"voyage", voyageNumber,
 
- 			"event_type", eventType,
 
- 			"completion_time", completed,
 
- 			"took", time.Since(begin),
 
- 			"err", err,
 
- 		)
 
- 	}(time.Now())
 
- 	return s.next.RegisterHandlingEvent(completed, id, voyageNumber, unLocode, eventType)
 
- }
 
 
  |