

 Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il [post del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# SVL\$1UDF\$1LOG
<a name="r_SVL_UDF_LOG"></a>

 Registra la generazione di messaggi di errore e di avviso definita dal sistema durante l'esecuzione della funzione definita dall'utente (UDF). 

SVL\$1UDF\$1LOG è visibile a tutti gli utenti. Gli utenti con privilegi avanzati visualizzano tutte le righe; gli utenti regolari visualizzano solo i propri dati. Per ulteriori informazioni, consulta [Visibilità dei dati nelle tabelle e nelle viste di sistema](cm_chap_system-tables.md#c_visibility-of-data). 

Alcuni o tutti i dati di questa tabella sono definiti anche nella vista di monitoraggio SYS [SYS\$1UDF\$1LOG](SYS_UDF_LOG.md). I dati nella vista di monitoraggio SYS sono formattati in modo da essere più facili da usare e comprendere. Ti consigliamo di utilizzare la vista di monitoraggio SYS per le query.

## Colonne di tabella
<a name="SVL_UDF_LOG-table-columns"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/dg/r_SVL_UDF_LOG.html)

## Query di esempio
<a name="SVL_UDF_LOG-sample-queries"></a>

L'esempio seguente mostra come UDFs gestire gli errori definiti dal sistema. Il primo blocco mostra la definizione di una funzione UDF che restituisce l'inverso di un argomento. Quando si esegue la funzione e si fornisce un argomento 0, come mostra il secondo blocco, la funzione restituisce un errore. La terza istruzione legge il messaggio di errore registrato in SVL\$1UDF\$1LOG

```
-- Create a function to find the inverse of a number

CREATE OR REPLACE FUNCTION  f_udf_inv(a int)
  RETURNS float IMMUTABLE
AS $$
   return 1/a
$$ LANGUAGE plpythonu;

-- Run the function with a 0 argument to create an error
Select f_udf_inv(0) from sales;

-- Query SVL_UDF_LOG to view the message

Select query, created, message::varchar
from svl_udf_log;

 query |          created           | message                             
-------+----------------------------+---------------------------------------------------------
  2211 | 2015-08-22 00:11:12.04819  | ZeroDivisionError: long division or modulo by zero\nNone
```

L'esempio seguente aggiunge la registrazione e un messaggio di avviso all'UDF in modo che un'operazione di divisione per zero risulti in un messaggio di avviso anziché in un arresto con un messaggio di errore. 

```
-- Create a function to find the inverse of a number and log a warning

CREATE OR REPLACE FUNCTION f_udf_inv_log(a int)
  RETURNS float IMMUTABLE
 AS $$ 
  import logging
  logger = logging.getLogger() #get root logger
  if a==0:
    logger.warning('You attempted to divide by zero.\nReturning zero instead of error.\n') 
    return 0
  else:
     return 1/a
$$ LANGUAGE plpythonu;
```

L'esempio seguente esegue la funzione, poi fa una query a SVL\$1UDF\$1LOG per visualizzare il messaggio.

```
-- Run the function with a 0 argument to trigger the warning
Select f_udf_inv_log(0) from sales;

-- Query SVL_UDF_LOG to view the message

Select query, created, message::varchar
from svl_udf_log;

query |          created           | message                             
------+----------------------------+----------------------------------
    0 | 2015-08-22 00:11:12.04819  | You attempted to divide by zero. 
                                     Returning zero instead of error.
```