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 11/12/2014 23:21:05

abenhamdine
Membre

Avoir seulement les requêtes utilisateur dans le log

Bonjour,


Je souhaite logger uniquement les requêtes envoyées par l'application cliente à la base.
Je constate que mon fichier de log comporte de nombreuses requêtes qui ne sont pas envoyées par le client.


Exemple, ici, seule la 1ère ligne correspond à une requête envoyée par le client :


2014-12-11 18:46:16 CET LOG:  instruction : select * from "T_ASS_SINISTRE_SIN";
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 23
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 23
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,24) as typname FROM pg_type WHERE oid = 1043
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,14) as typname FROM pg_type WHERE oid = 1043
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 23
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,24) as typname FROM pg_type WHERE oid = 1043
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 1082
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 1083
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 1082
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 23
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 1082
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,84) as typname FROM pg_type WHERE oid = 1043
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,84) as typname FROM pg_type WHERE oid = 1043
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 23
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 25
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 25
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 21
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 16
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 1082
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 25
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 25
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 16
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 16
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 23
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,7) as typname FROM pg_type WHERE oid = 1043
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 16
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 23
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 1082
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 21
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 16
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 23
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 23
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 23
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 23
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 23
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 23
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 23
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 23
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 21
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 23
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 1082
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 1082
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 700
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 23
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 1700
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 16
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 23
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 16
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 23
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 23
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 23
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,54) as typname FROM pg_type WHERE oid = 1043
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,14) as typname FROM pg_type WHERE oid = 1043
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 23
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 25
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,54) as typname FROM pg_type WHERE oid = 1043
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,14) as typname FROM pg_type WHERE oid = 1043
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 25
2014-12-11 18:46:17 CET LOG:  instruction : SELECT format_type(oid,-1) as typname FROM pg_type WHERE oid = 16
2014-12-11 18:46:17 CET LOG:  instruction : SELECT CASE WHEN typbasetype=0 THEN oid else typbasetype END AS basetype
	  FROM pg_type WHERE oid=23
2014-12-11 18:46:17 CET LOG:  instruction : SELECT CASE WHEN typbasetype=0 THEN oid else typbasetype END AS basetype
	  FROM pg_type WHERE oid=23
2014-12-11 18:46:17 CET LOG:  instruction : SELECT CASE WHEN typbasetype=0 THEN oid else typbasetype END AS basetype
	  FROM pg_type WHERE oid=1043
2014-12-11 18:46:17 CET LOG:  instruction : SELECT CASE WHEN typbasetype=0 THEN oid else typbasetype END AS basetype
	  FROM pg_type WHERE oid=1043

Vous conviendrez que cela fait beaucoup de lignes pour un simple select...


Mon serveur est en 9.4beta2 64 bits sur Windows 8.


Les paramètres que j'ai activé dans pgconf sont :


log_destination = 'stderr'	
logging_collector = on
log_statement = 'all'	
log_min_messages = 'log'
client_min_messages = 'error'

J'ai essayé plusieurs niveaux pour log_min_messages mais en vain.

Auriez vous une piste ?

Arnaud.

Hors ligne

#2 11/12/2014 23:50:14

gleu
Administrateur

Re : Avoir seulement les requêtes utilisateur dans le log

Les autres lignes ont aussi été tracées suite à des requêtes exécutées par des clients. Probablement un outil comme pgAdmin (et vu les requêtes, j'aurais même tendance à affirmer que c'est un pgAdmin).

Vous n'avez pas de moyen de filtrer les messages affichés, que ce soit par client, par utilisateur ou bases de données.


Guillaume.

Hors ligne

#3 12/12/2014 10:20:03

ruizsebastien
Membre

Re : Avoir seulement les requêtes utilisateur dans le log

Bonjour,
Si vous êtes sur unix ou linux, vous pouvez toujours traiter vos logs avec un sed qui envoie tout ce que vous voulez dans un autre fichier. Histoire de n'avoir que les informations que vous souhaitez.

Cordialement,


Cordialement,

Sébastien.

Hors ligne

#4 13/12/2014 20:20:42

abenhamdine
Membre

Re : Avoir seulement les requêtes utilisateur dans le log

Bonjour,

Merci de vos réponses.
Il s'agissait effectivement tout bêtement de requêtes envoyées par pgAdmin, que je consultais après chaque requête envoyée par l'application cliente...


Par ailleurs, cela m'a permis de me rendre compte que l'application cliente envoyait également, en plus de la requête générée par le code applicatif, un grand nombre de requêtes "système", pour obtenir la liste des tables, la liste des colonnes, leurs types.. etc... et ce à chaque requête !


Pour information, il s'agit du driver postgresql fourni avec le produit Windev, qui ne semble absolument pas optimisé.


@ruizsebastien : non, je suis sur Windows.


Arnaud.

Dernière modification par abenhamdine (13/12/2014 20:21:43)

Hors ligne

Pied de page des forums