Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Erreurs de journalisation et avertissements en Python UDFs
Vous pouvez utiliser le module de journalisation Python pour créer des messages d'erreur et d'avertissement définis par l'utilisateur dans votreUDFs. Après l'exécution d'une requête, vous pouvez interroger la vue système SVL_UDF_LOG pour récupérer les messages journalisés.
Note
UDFla journalisation consomme les ressources du cluster et peut affecter les performances du système. Nous vous recommandons d'implémenter la journalisation uniquement pour le développement et le dépannage.
Pendant l'exécution de la requête, le gestionnaire de journal écrit des messages dans la vue LOG système SVL UDF _ _, ainsi que le nom de la fonction, le nœud et la tranche correspondants. Le gestionnaire de journal écrit une ligne dans le SVL _ UDF _ LOG par message, par tranche. Les messages sont tronqués à 4096 octets. Le UDF journal est limité à 500 lignes par tranche. Lorsque le journal est plein, le gestionnaire de journal supprime les anciens messages et ajoute un message d'avertissement à SVL _ _UDF. LOG
Note
Le gestionnaire de UDF journal Amazon Redshift évite les nouvelles lignes (\n
), les tubes () et les barres obliques inverses (|
) par une barre oblique inverse (\
). \
Par défaut, le niveau de UDF journalisation est défini surWARNING. Les messages dont le niveau de journalisation est de WARNINGERROR, et CRITICAL sont enregistrés. Les messages moins graves INFO DEBUG et NOTSET sont ignorés. Pour définir le niveau de UDF journalisation, utilisez la méthode de journalisation Python. Par exemple, ce qui suit définit le niveau de journalisation surINFO.
logger.setLevel(logging.INFO)
Pour plus d'informations sur l'utilisation du module de journalisation Python, consultez Logging facility for Python
L'exemple suivant crée une fonction nommée f_pyerror qui importe le module de journalisation Python, instancie la méthode logger et journalise une erreur.
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'exemple suivant interroge SVL _ UDF _ LOG pour afficher le message enregistré dans l'exemple précédent.
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