Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#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
Pages : 1