El registre del servidor (server log) és un fitxer de text on PostgreSQL escriu què li passa:
l'arrancada i l'aturada, els errors i els avisos, els checkpoints i, si s'activa, les connexions
o les consultes lentes. És la primera font d'informació per diagnosticar qualsevol problema.
No s'ha de confondre el registre del servidor amb el diari de transaccions (WAL).
El WAL, que es guarda a pg_wal/, registra en format binari cada canvi en les dades
i és imprescindible per a la recuperació. En canvi, el registre del servidor només conté
missatges informatius i es pot esborrar sense perdre dades. El WAL es tracta en els apunts
de Còpies de seguretat.
El paràmetre logging_collector decideix on s'escriuen els missatges. Si està desactivat,
el servidor els envia a l'eixida d'errors; si està activat, un procés s'encarrega de guardar-los
en fitxers i de rotar-los:
SHOWlogging_collector;
logging_collector
--------------------
on
En la imatge oficial de Docker, logging_collector està desactivat per defecte i els missatges es consulten amb docker logs.
Quan el col·lector està activat, la ubicació i el nom dels fitxers es configuren amb aquests paràmetres
de postgresql.conf:
log_directory: directori dels fitxers de registre. És relatiu a PGDATA, tret que s'indique
una ruta absoluta. Per defecte, log.
log_filename: nom dels fitxers, amb codis de data. Per defecte, postgresql-%Y-%m-%d_%H%M%S.log.
log_rotation_age: temps màxim abans de començar un fitxer nou. Per defecte, 1d.
log_rotation_size: mida màxima abans de començar un fitxer nou. Per defecte, 10MB.
Per saber quin és el fitxer on s'està escrivint en aquest moment, s'utilitza la funció
pg_current_logfile():
Altres paràmetres determinen què s'escriu en el registre i amb quin format:
log_min_messages: nivell mínim dels missatges que es registren. Per defecte, warning.
Valors de log_min_messages
Valor
Significat
debug5…debug1
Missatges de depuració, del més al menys detallat
info
Informació sol·licitada implícitament per l'usuari
notice
Informació útil per a l'usuari
warning
Avisos de possibles problemes (valor per defecte)
error
Errors que han avortat una ordre
log
Informació d'interés per a l'administrador
fatal
Errors que han tancat la sessió
panic
Errors que han aturat tot el servidor
log_line_prefix: prefix de cada línia, amb codis com %m (data i hora) o %p (PID del procés).
Per defecte, %m [%p].
log_min_duration_statement: registra les consultes que tarden més dels mil·lisegons indicats.
Per defecte, -1 (desactivat).
log_connections i log_disconnections: registren els inicis i els tancaments de sessió.
log_statement: registra les sentències executades (vegeu Auditoria).
Per exemple, aquesta configuració registra les consultes que tarden més d'un segon i les connexions:
log_min_duration_statement=1000log_connections=on
Exemple: Consulta del registre del servidor
Es mostren les últimes línies del fitxer de registre actual des del contenidor:
jpuigcerver@fp:~$dockerexecpostgres16bash-c'tail -n 3 $PGDATA/log/postgresql-*.log'2026-01-15 12:00:01.123 UTC [1] LOG: database system is ready to accept connections2026-01-15 12:05:42.518 UTC [87] LOG: connection authorized: user=postgres database=postgres2026-01-15 12:06:10.004 UTC [87] LOG: duration: 1503.271 ms statement: SELECT pg_sleep(1.5);
S'observa que cada línia comença amb el prefix per defecte (data i PID), seguit del nivell
del missatge (LOG) i del text.
📌 Aquest document pot quedar desactualitzat després d’imprimir-lo. Pots consultar la versió més recent
a la pàgina web.
🌿 Abans d’imprimir aquest document, considera si és realment necessari. Redueix el consum de paper i ajuda a protegir el nostre entorn.