code: func newGELFUDPWriter(address string, info logger.Info) (gelf.Writer, error) {
  	gelfWriter, err := gelf.NewUDPWriter(address)
  	if err != nil {
  		return nil, fmt.Errorf("gelf: cannot connect to GELF endpoint: %s %v", address, err)
  	}
  
  	if v, ok := info.Config["gelf-compression-type"]; ok {
  		switch v {
  		case "gzip":
  			gelfWriter.CompressionType = gelf.CompressGzip
  		case "zlib":
  			gelfWriter.CompressionType = gelf.CompressZlib
  		case "none":
  			gelfWriter.CompressionType = gelf.CompressNone
  		default:
  			return nil, fmt.Errorf("gelf: invalid compression type %q", v)
  		}
  	}
  
  	if v, ok := info.Config["gelf-compression-level"]; ok {
  		val, err := strconv.Atoi(v)
  		if err != nil {
  			return nil, fmt.Errorf("gelf: invalid compression level %s, err %v", v, err)
  		}
  		gelfWriter.CompressionLevel = val
  	}
  
  	return gelfWriter, nil
  }
docs: // create new UDP gelfWriter