Atunci când lucrați cu sistemele ORM (sau programele altor persoane), uneori este util să înțelegeți ce cereri vin la server. În mod implicit, logarea interogărilor SQL la PostgreSQL este dezactivată. Pentru ao activa, trebuie să setați următoarele în fișierul /etc/postgresql/8.3/main/postgresql.conf (schimbarea valorii cheie implicită):
debug_pretty_print = activat
log_statement = 'toate'
Următoarele valori ale parametrului sunt valide:
- niciuna logare nu este dezactivată;
- ddl - comenzi pentru definirea datelor (crearea de baze de date, tabele, utilizatori etc.);
- mod - tot ceea ce este asociat cu modificarea datelor (inclusiv comenzile DDL);
- toate - jurnalul înregistrează toată comunicarea serverului cu clienții.
Pentru ca setările noi să aibă efect, executați comanda:
$ / etc / init.d / postgresql-8.3 reîncărcați
Reîncărcarea serverului de bază de date PostgreSQL 8.3: principal.
$
După aceasta, puteți vedea jurnalul în fișierul /var/log/postgresql/postgrsql-8.3-main.log. Pentru a vizualiza jurnalele, este convenabil să utilizați comanda coadă. Următorul exemplu scoate ultimele 20 de linii și actualizează ieșirea o dată pe secundă (ieșire ctrl + c):
sudo tail -f /var/log/postgresql/postgresql-8.3-main.log
Revistele tind să se umfle. Și busteni mari încetinesc programul. Prin urmare, vă recomandăm să setați următorii parametri:
- log_destination unde să salveze informații;
- logging_collector - include suport extins pentru stocarea jurnalului;
- log_directory - director pentru memorarea jurnalelor;
- log_filename - șablon nume fișier jurnal;
- log_rotation_age este durata maximă de viață a fișierului jurnal. După realizarea sa, va fi lansat un nou fișier;
- log_rotation_size - mărimea fișierului, pe care va fi pornit intrarea în noul fișier.
Setările de exemplu:
log_destination = 'stderr'
logging_collector = activat
log_directory = '/ var / log / postgresql /'
log_filename = 'postgresql-% Y-% m-._% H% M% S.log'
log_rotation_age = 1d
Mai multe informații despre sistemul de înregistrare pot fi găsite în capitolul 18.7. Raportarea erorilor și înregistrarea din documentația PostgreSQL 8.3.