func (b *Backend) ResolveTDOA(ctx context.Context, req *geo.ResolveTDOARequest) (*geo.ResolveTDOAResponse, error) {
	if err := b.logRequest("ResolveTDOA", req); err != nil {
		log.WithError(err).Error("backend/logger: log request error")
	}
	return b.backend.ResolveTDOA(ctx, req)
}
ResolveTDOA resolves the location based on TDOA.
package logger
import (
	"bytes"
	"context"
	"io/ioutil"
	"os"
	"path/filepath"
	"time"
	"github.com/golang/protobuf/jsonpb"
	"github.com/golang/protobuf/proto"
	"github.com/pkg/errors"
	log "github.com/sirupsen/logrus"
	"github.com/brocaar/chirpstack-geolocation-server/internal/config"
	"github.com/brocaar/chirpstack-api/go/v3/geo"
)
type Backend struct {
	backend geo.GeolocationServerServiceServer
	logDir  string
}
func NewBackend(b geo.GeolocationServerServiceServer, c config.Config) (geo.GeolocationServerServiceServer, error) {
	if b == nil {
		return nil, errors.New("the given backend must not be nil")
	}
	return &Backend{
		backend: b,
		logDir:  c.GeoServer.Backend.RequestLogDir,
	}, nil
}