code: func NewRawAdapter(route *router.Route) (router.LogAdapter, error) {
  	transport, found := router.AdapterTransports.Lookup(route.AdapterTransport("udp"))
  	if !found {
  		return nil, errors.New("bad transport: " + route.Adapter)
  	}
  	conn, err := transport.Dial(route.Address, route.Options)
  	if err != nil {
  		return nil, err
  	}
  	tmplStr := "{{.Data}}\n"
  	if os.Getenv("RAW_FORMAT") != "" {
  		tmplStr = os.Getenv("RAW_FORMAT")
  	}
  	tmpl, err := template.New("raw").Funcs(funcs).Parse(tmplStr)
  	if err != nil {
  		return nil, err
  	}
  	return &Adapter{
  		route: route,
  		conn:  conn,
  		tmpl:  tmpl,
  	}, nil
  }
docs: // NewRawAdapter returns a configured raw.Adapter