func NewLogger(timeFormat string, pathsToIgnore []string, logFunc func(entity LogEntry, values ...interface{})) LogFunc {
	return NewMaskingLogger(timeFormat, nil, nil, pathsToIgnore, logFunc)
}
NewLogger returns a new Logger based on APIKit middleware.LogFunc by
recognizing the given time format.
package middleware
import (
	"encoding/json"
	"io/ioutil"
	"net/http"
	"reflect"
	"strings"
	"time"
)
type (
	logRequest struct {
		Body      interface{} `json:",omitempty"`
		Params    interface{} `json:",omitempty"`
		RequestID string      `json:"requestId,omitempty"`
		Endpoint  string
		Method    string
	}
	logResponse struct {
		Body       interface{} `json:",omitempty"`
		StatusCode int         `json:"responseCode"`
	}
	LogEntry struct {
		Request   *logRequest  `json:",omitempty"`
		Response  *logResponse `json:",omitempty"`
		Duration  float64      `json:"durationMs"`
		Timestamp string
	}
)