PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 07/02/2014 12:30:54

GAEREL
Membre

[9.3] RAISE et niveaux de log

Bonjour à tous.

J'ai un peu de mal avec le paramétrage de la fonction RAISE [niveau] [format] [expression,...]
Surtout coté client
Car je développe des fonctions assez longues qui contiennent des RAISE avec des niveau de log différents (de NOTICE à DEBUG)

> Pourquoi n'est il pas possible, dynamiquement, de changer le niveau (client_min_message) et/ou, d'ailleurs, le log_line_prefix en fonction de mes besoins ?
> Pourquoi ce paramétrage est il réservé au serveur ? donc au DBA (ce que je peux comprendre en production mais moins en phase de dev...)

En effet, à un instant T je peux avoir besoin du niveau DEBUG pour un deboguage profond et vouloir revenir au niveau NOTICE lors d'un test de plus grande envergure nécessitant moins de traces

Ceci, d'ailleurs, quel que soit le client : je développe avec pgadmin et teste mes scripts via psql

Merci d'avance de vos réponses éclairées.

Cordialement
Fred


Cordialement.

Fred.

Hors ligne

#2 08/02/2014 19:09:05

gleu
Administrateur

Re : [9.3] RAISE et niveaux de log

Il est possible de changer dynamiquement le niveau de log avec client_min_messages, y compris en tant que simple utilisateur. La preuve :

postgres=# select 1;
 ?column? 
----------
        1
(1 row)

postgres=# show client_min_messages;
 client_min_messages 
---------------------
 notice
(1 row)

postgres=# set client_min_messages to log;
LOG:  durée : 27.994 ms, instruction : set client_min_messages to log;
SET
postgres=# select 1;
LOG:  durée : 0.134 ms, instruction : select 1;
 ?column? 
----------
        1
(1 row)

J'ai bien un message de niveau LOG maintenant.

Pour le changement de log_line_prefix, c'est un paramètre valable pour le serveur complet. Vous pouvez le changer dynamiquement mais uniquement en modifiant le fichier de configuration, puis en demandant à PostgreSQL de relire sa configuration. Et comme son nom l'indique, ça ne concerne que les traces serveur, pas les traces clients (donc log_min_messages et pas client_min_messages pour être un peu rapide).

> Pourquoi ce paramétrage est il réservé au serveur ? donc au DBA (ce que je peux comprendre en production mais moins en phase de dev...)

En effet, à un instant T je peux avoir besoin du niveau DEBUG pour un deboguage profond et vouloir revenir au niveau NOTICE lors d'un test de plus grande envergure nécessitant moins de traces

Si vous parlez de log_line_prefix, c'est parce que c'est un paramètre côté serveur. Vous avez client_min_messages pour ce que vous voulez obtenir.


Guillaume.

Hors ligne

#3 10/02/2014 11:27:07

GAEREL
Membre

Re : [9.3] RAISE et niveaux de log

Effectivement cela fonctionne avec le "set client_min_messages to" que je n'avais pas trouvé..
Merci.

Il ne me reste qu'à trouver comment me débarrasser du "Context" pour passer de

NOTICE:  Lancement de l'Allumeur à 2014-02-10 10:24:32.297771+01
INFO:  Procédure de traitement du flux INFOLT2      (19) : transport.allum_format_infolt()
INFO:  48 transactions insérées dans tmp_transactions
CONTEXT:  SQL statement "SELECT transport.allum_format_infolt()"
PL/pgSQL function tampon.allumeur() line 46 at EXECUTE statement
INFO:  4661 données insérées dans tmp_verif_datas_infolt
CONTEXT:  SQL statement "SELECT transport.allum_format_infolt()"
PL/pgSQL function tampon.allumeur() line 46 at EXECUTE statement
INFO:  0 données rejetées pour Longueur n° LT invalide
CONTEXT:  SQL statement "SELECT transport.allum_verif_infolt()"
..

à

NOTICE:  Lancement de l'Allumeur à 2014-02-10 10:24:32.297771+01
INFO:  Procédure de traitement du flux INFOLT2      (19) : transport.allum_format_infolt()
INFO:  48 transactions insérées dans tmp_transactions
INFO:  4661 données insérées dans tmp_verif_datas_infolt
INFO:  0 données rejetées pour Longueur n° LT invalide
...

Cordialement.

Fred.

Hors ligne

#4 10/02/2014 21:37:49

gleu
Administrateur

Re : [9.3] RAISE et niveaux de log

Malheureusement, vous ne pourrez pas.


Guillaume.

Hors ligne

Pied de page des forums