- Hitta konfigurationsfilen
- Leta reda på datakatalogsökvägen
- Konfigurera PostgreSQL för att generera loggutdata
- Starta om PostgreSQL-tjänsten
- Verifierar logggenerering
Att aktivera loggning inom PostgreSQL görs ganska enkelt genom att ändra en handfull konfigurationsinställningar och sedan starta om servern. Även om dessa inställningar kan ändras "i minnet" och därigenom möjliggör tillfällig loggning för endast den specifika klientsessionen, kommer vi i den här handledningen att täcka hur man konfigurerar postgres för att permanent skapa iterativa loggfiler för alla sessioner och anslutningar.
Hitta konfigurationsfilen
Om du är osäker på var postgresql.conf
config-filen finns, den enklaste metoden för att hitta platsen är att ansluta till postgres-klienten (psql
) och utfärda SHOW config_file;
kommando:
postgres=# SHOW config_file;
config_file
------------------------------------------
/etc/postgresql/9.3/main/postgresql.conf
I det här fallet kan vi se sökvägen till postgresql.conf
filen för denna server är /etc/postgresql/9.3/main/postgresql.conf
. Öppna bara den filen med din favorittextredigerare så kan vi börja ändra inställningarna:
$ nano /etc/postgresql/9.3/main/postgresql.conf
Hitta sökvägen till datakatalogen
Det är också en bra idé att bekräfta sökvägen till data
katalog för din postgres-installation. Detta kommer att vara användbart senare, och att hämta sökvägen är en fråga om en annan enkel SHOW
uttalande:
postgres=# SHOW data_directory;
data_directory
------------------------------
/var/lib/postgresql/9.3/main
På vissa installationer, konfigurationsfilen och data
katalogen kommer att ligga längs samma väg, medan de i andra (som det här exemplet) är olika. Hur som helst, kopiera ned denna data
katalogsökväg för senare användning.
Konfigurera PostgreSQL för att generera loggutdata
Med postgresql.conf
fil öppnas, scrolla ned till ERROR REPORTING AND LOGGING
avsnitt och du kommer sannolikt att se ett antal konfigurationsalternativ kommenterade. De mest kritiska av dessa inställningar är log_destination
och logging_collector
. Nedan finns de rekommenderade inställningarna, men ändra gärna dessa för att passa dina egna behov:
#------------------------------------------------------------------------------
# ERROR REPORTING AND LOGGING
#------------------------------------------------------------------------------
# - Where to Log -
log_destination = 'csvlog' # Valid values are combinations of
# stderr, csvlog, syslog, and eventlog,
# depending on platform. csvlog
# requires logging_collector to be on.
# This is used when logging to stderr:
logging_collector = on # Enable capturing of stderr and csvlog
# into log files. Required to be on for
# csvlogs.
# (change requires restart)
# These are only used if logging_collector is on:
log_directory = 'pg_log' # directory where log files are written,
# can be absolute or relative to PGDATA
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern,
# can include strftime() escapes
Här säger vi till postgres att skapa loggar i CSV
formatera och mata ut dem till pg_log
katalogen (inom data
katalog). Vi har också avkommenterat log_filename
inställning för att skapa ett eget namn inklusive tidsstämplar för loggfilerna.
Du kan hitta detaljerad information om alla dessa inställningar i den official documentation
.
Starta om PostgreSQL-tjänsten
Det sista steget är att starta om PostgreSQL-tjänsten så att dessa inställningar, särskilt logging_collector
, träder i kraft. Att utföra en postgres-omstart kommer att skilja sig från system till system, men vanligtvis för ett unix-system ser kommandot ut ungefär så här:
$ service postgresql restart
* Restarting PostgreSQL 9.3 database server [ OK ]
Verifiera logggenerering
När systemet har startat om bör loggning börja omedelbart. För att säkerställa att så är fallet, navigera till data/pg_log
katalogen för din postgres-installation. Kom ihåg att vi tog tag i data
katalogsökväg tidigare, så navigera helt enkelt till den katalogen genom att lägga till /pg_log
till slutet för att komma in i loggkatalogen:
$ cd /var/lib/postgresql/9.3/main/pg_log
Lista nu filerna och du bör se att en loggfil har skapats efter den tidigare omstarten av tjänsten:
$ ls -l
-rw------- 1 postgres postgres 935 Apr 13 20:30 postgresql-2016-04-13_203022.csv
Där har vi det; automatiskt genererade loggfiler aktiveras med PostgreSQL genom att bara ändra några konfigurationsinställningar.