Skip to content

Logowanie do pliku wszystkich zapytań w PostgreSQL

by zergu on Lipiec 21st, 2009 Blip Facebook Flaker Twitter Wykop

Aby zapisywać w logach wszystkie zapytania jakie się wykonują w naszej bazie danych wystarczy zmienić tylko kilka opcji konfiguracyjnych i zrestartować serwer Postgresa. Tak więc w pliku postgresql.conf (znajdującym się katalogu, w którym trzymane są bazy, zwykle tam gdzie wskzuje zmienna PGDATA, a w „debianopodobnych” w /etc/postgresql/8.x/main/) w sekcji Error Reporting and Logging ustawiamy:

log_destination = 'stderr'
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_statement = 'all'

Gdzie:

  • log_destination — tak jest ustawiony domyślnie, więc tylko sprawdzamy czy się nic nie zmieniło.
  • logging_collector — włączamy, aby logi trafiające do stderr mogły być zapisane do pliku.
  • log_directory — dowolna nazwa katalogu dla logów, znajdującego się katalogu gdzie trzymamy bazę. Jeśli nie ma takiego należy go utworzyć i upewnić się, że postgres ma uprawnienia do zapisu.
  • log_filename — nazwa pliku z logami, tutaj ze zdefiniowanym dniem.
  • log_statement — grupa zapytań jakie chcemy zapisywać do pliku. Tutaj wybrane wszystkie. Inne opcje: none (wyłączenie zapisu), ddl (zapytania CREATE, ALTER, DROP), mod (tutaj zapewne chodzi o zapytania UPDATE, ale tego nie testowaliśmy).

Podobne wpisy:

  1. Zapamiętywanie hasła dla PostgreSQL w pliku
  2. PostgreSQL: Reset wszystkich sekwencji
  3. Migracja MySQL → PostgreSQL aplikacji w Symfony 1.1

Autorzy zdjęć: FeatheredTar

From → Bazy danych

One Comment
  1. Chyba o wiele wygodniej jest zamiast log_statement=all zmienić log_min_duration_statement. Poza tym można też te opcje zmieniać dla każdej bazy osobno, niekoniecznie dla całego klastra.

Leave a Reply

Note: XHTML is allowed. Your email address will never be published.

Subscribe to this comment feed via RSS

Notify me of followup comments via e-mail. You can also subscribe without commenting.