func NewClient()

in logsapi/client.go [74:101]


func NewClient(opts ...ClientOption) (*Client, error) {
	c := Client{
		server: &http.Server{
			// Fixes "Potential Slowloris Attack because ReadHeaderTimeout is not configured in the http.Server"
			ReadHeaderTimeout: time.Second * 5,
		},
		httpClient: &http.Client{},
	}

	for _, opt := range opts {
		opt(&c)
	}

	mux := http.NewServeMux()
	mux.HandleFunc("/", handleLogEventsRequest(c.logger, c.logsChannel))

	c.server.Handler = mux

	if c.logsAPIBaseURL == "" {
		return nil, errors.New("logs api base url cannot be empty")
	}

	if c.logger == nil {
		return nil, errors.New("logger cannot be nil")
	}

	return &c, nil
}