Type: | string |
Défaut: | %m [%p] |
Contexte: | sighup |
Redémarrer: | false |
Il s'agit d'une chaîne de style printf affichée au début de chaque ligne de trace. Les caractères %
débutent des séquences d'échappement qui sont remplacées avec l'information de statut décrite ci-dessous. Les échappement non reconnus sont ignorés. Les autres caractères sont copiés directement dans la trace. Certains échappements ne sont reconnus que par les processus de session et seront traités comme vide par les processus en tâche de fond tels que le processus principal du serveur. L'information de statut pourrait être alignée soit à gauche soit à droite en indiquant un nombre après le signe pourcent et avant l'option. Une valeur négative implique un alignement à droite par ajout d'espaces alors qu'une valeur positive est pour un alignement à gauche. L'alignement peut être utile pour aider à la lecture des fichiers de trace.
Ce paramètre ne peut être configuré que dans le fichier postgresql.conf ou indiqué sur la ligne de commande. La valeur par défaut est '%m [%p] '
ce qui affiche dans les trace l'heure courante ainsi que l'identifiant de processus.
%a
Nom de l'applicationyes%u
Nom de l'utilisateuroui%d
Nom de la base de donnéesoui%r
Nom ou adresse IP de l'hôte distant et port distantoui%h
Nom d'hôte distant ou adresse IPoui%b
Backend typeno%p
ID du processusnon%t
Estampille temporelle sans millisecondesnon%m
Estampille temporelle avec millisecondesnon%n
Estampille temporelle avec millisecondes (sous la forme d'un epoch Unix)non%i
Balise de commande : type de commandeoui%e
code d'erreur correspondant à l'état SQLno%c
ID de session : voir ci-dessousnon%l
Numéro de la ligne de trace de chaque session ou processus, commençant à 1non%s
Estampille temporelle du lancement du processusoui%v
Identifiant virtuel de transaction (backendID/localXID)no%x
ID de la transaction (0 si aucune affectée)non%q
Ne produit aucune sortie, mais indique aux autres processus de stopper à cet endroit de la chaîne. Ignoré par les processus de session.non%%
%
non
The backend type corresponds to the column backend_type in the view pg_stat_activity, but additional types can appear in the log that don't show in that view.
L'échappement %c
affiche un identifiant de session quasi-unique constitué de deux nombres hexadécimaux sur quatre octets (sans les zéros initiaux) et séparés par un point. Les nombres représentent l'heure de lancement du processus et l'identifiant du processus, %c
peut donc aussi être utilisé comme une manière de raccourcir l'affichage de ces éléments. Par exemple, pour générer l'identifiant de session à partir de pg_stat_activity
, utilisez cette requête : SELECT to_hex(trunc(EXTRACT(EPOCH FROM backend_start))::integer) || '.' || to_hex(pid)FROM pg_stat_activity;
Si log_line_prefix
est différent d'une chaîne vide, il est intéressant d'ajouter une espace en fin de chaîne pour créer une séparation visuelle avec le reste de la ligne. Un caractère de ponctuation peut aussi être utilisé.
syslog produit ses propres informations d'horodatage et d'identifiant du processus. Ces échappements n'ont donc que peu d'intérêt avec syslog.
L'échappement %q
est utile quand des informations qui ne sont disponibles que dans le contexte d'une session (processus client) est utilisé, comme le nom de l'utilisateur ou de la base. Par exemple :log_line_prefix = '%m [%p] %q%u@%d/%a '
Recommandations [EN]
Sur StackOverflow
Sur pgsql-hackers
- Re: Adding the extension name to EData / log_line_prefix
- Re: Fix for timestamp lag issue from emit_log_hook when GUC log_line_prefix has '%m'
- Fix for timestamp lag issue from emit_log_hook when GUC log_line_prefix has '%m'
- Adding the extension name to EData / log_line_prefix
- Re: Fix log_line_prefix to display the transaction id (%x) for statements not in a transaction block