Jak rejestrować zapytania PostgreSQL?
Jak włączyć logowanie wszystkich SQL wykonanych przez PostgreSQL 8.3?
Edited (more info) Zmieniłem te linijki:
log_directory = 'pg_log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_statement = 'all'
I uruchom ponownie usługę PostgreSQL... ale nie stworzono żadnego dziennika... Używam systemu Windows Server 2003.
Jakieś pomysły?8 answers
W pliku data/postgresql.conf
zmień ustawienie log_statement
na 'all'
.
Edit
Patrząc na twoje nowe informacje, powiedziałbym, że może być kilka innych ustawień do weryfikacji:
- upewnij się, że włączyłeś zmienną
log_destination
- upewnij się, że włączyłeś
logging_collector
- upewnij się również, że katalog
pg_log
istnieje już wewnątrz katalogudata
i że użytkownik postgres może do niego pisać.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-17 19:20:32
Edytuj swoje /etc/postgresql/9.3/main/postgresql.conf
i zmień linie w następujący sposób.
Uwaga: jeśli nie znalazłeś pliku postgresql.conf
, po prostu wpisz $locate postgresql.conf
w terminalu
#log_directory = 'pg_log'
nalog_directory = 'pg_log'
#log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
nalog_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
#log_statement = 'none'
nalog_statement = 'all'
#logging_collector = off
nalogging_collector = on
Opcjonalnie:
SELECT set_config('log_statement', 'all', true);
sudo /etc/init.d/postgresql restart
lubsudo service postgresql restart
Fire query w postgresql
select 2+2
Znajdź aktualne Zaloguj się
/var/lib/pgsql/9.2/data/pg_log/
Pliki dziennika mają tendencję do dużego wzrostu w czasie i mogą zabić twoją maszynę. Dla Twojego bezpieczeństwa napisz skrypt bash, który usunie logi i zrestartuje serwer postgresql.
Dzięki @ paul, @ Jarret Hardie , @Zoltán , @Rix Beck, @ Latif PremaniWarning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-27 13:02:26
SELECT set_config('log_statement', 'all', true);
Z odpowiednim prawem użytkownika może korzystać z powyższego zapytania po podłączeniu. Będzie to miało wpływ na logowanie do czasu zakończenia sesji.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-16 14:18:59
Musisz również dodać te linie w PostgreSQL i ponownie uruchomić serwer:
log_directory = 'pg_log'
log_filename = 'postgresql-dateformat.log'
log_statement = 'all'
logging_collector = on
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-11 20:00:06
Ustaw log_statement
Na all
:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-06 16:37:33
+1 do powyższych odpowiedzi. Używam następującej konfiguracji
log_line_prefix = '%t %c %u ' # time sessionid user
log_statement = 'all'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-08 09:53:12
FYI: inne rozwiązania będą logować tylko instrukcje z domyślnej bazy danych-zwykle postgres
-do logowania innych; zacznij od ich rozwiązania; następnie:
ALTER DATABASE your_database_name
SET log_statement = 'all';
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-08 08:45:54
Aby uzyskać więcej informacji na temat CentOS 6.4 (Red Hat 4.4.7-3) z uruchomieniem PostgreSQL 9.2, W oparciu o instrukcje znalezione na tej stronie :
- Set (uncomment)
log_statement = 'all'
andlog_min_error_statement = error
in/var/lib/pgsql/9.2/data/postgresql.conf
. - Przeładuj konfigurację PostgreSQL. Dla mnie to było zrobione przez running
/usr/pgsql-9.2/bin/pg_ctl reload -D /var/lib/pgsql/9.2/data/
. - Znajdź dzisiejsze logowanie
/var/lib/pgsql/9.2/data/pg_log/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-09 09:33:30