

 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à.

# Registrazione di errori e avvisi in Python UDFs
<a name="udf-logging-messages"></a>

Puoi usare il modulo di registrazione Python per creare messaggi di errore e avviso definiti dall'utente nel tuo. UDFs In seguito all'esecuzione della query, puoi eseguire una query sulla vista di sistema [SVL\$1UDF\$1LOG](r_SVL_UDF_LOG.md) per recuperare i messaggi registrati.

**Nota**  
Il logging di funzioni definite dall'utente utilizza risorse del cluster e può influire sulle prestazioni del sistema. Ti consigliamo di implementare il logging solo per scopi di sviluppo e risoluzione dei problemi. 

Durante l'esecuzione delle query, il gestore dei log scrive messaggi nella vista di sistema SVL\$1UDF\$1LOG, insieme a nome, nodo e sezione della funzione corrispondente. Il gestore dei log scrive una riga nella vista di sistema SVL\$1UDF\$1LOG per ogni messaggio e per ogni sezione. I messaggi vengono troncati a 4096 byte. I log delle funzioni definite dall'utente è limitato a 500 righe per sezione. Quando il log è pieno, il gestore dei log elimina i messaggi meno recenti e aggiunge un messaggio di avviso in SVL\$1UDF\$1LOG.

**Nota**  
Il gestore dei log delle funzioni definite dall'utente di Amazon Redshift aggiunge a caratteri di nuova riga (`\n`), caratteri di barra verticale (`|`) e caratteri di barra rovesciata (`\`) un carattere di barra rovesciata (`\`) per l'escape.

Per impostazione predefinita, il livello di log delle funzioni definite dall'utente è impostato su WARNING. I messaggi con livello di log WARNING, ERROR e CRITICAL vengono registrati. I messaggi con gravità minore, come INFO, DEBUG e NOTSET, vengono ignorati. Per impostare il livello di log delle funzioni definite dall'utente, usa il metodo logger Python. Ad esempio, il codice seguente imposta il livello di log su INFO.

```
logger.setLevel(logging.INFO)
```

Per ulteriori informazioni sull'uso del modulo di logging Python, consultare la pagina relativa all'[utilità di logging per Python](https://docs.python.org/2.7/library/logging.html) nella documentazione di Python.

L'esempio seguente crea una funzione denominata f\$1pyerror che importa il modulo di logging Python, crea un'istanza del logger e registra un errore.

```
CREATE OR REPLACE FUNCTION f_pyerror() 
RETURNS INTEGER
VOLATILE AS
$$
import logging

logger = logging.getLogger()
logger.setLevel(logging.INFO)
logger.info('Your info message here') 
return 0
$$ language plpythonu;
```

L'esempio seguente esegue una query su SVL\$1UDF\$1LOG per visualizzare il messaggio registrato nell'esempio precedente.

```
select funcname, node, slice, trim(message) as message 
from svl_udf_log;

  funcname  | query | node | slice |   message  
------------+-------+------+-------+------------------
  f_pyerror | 12345 |     1|     1 | Your info message here
```