- Localizando o arquivo de configuração
- Localize o caminho do diretório de dados
- Configurando o PostgreSQL para gerar saída de log
- Reinicie o serviço PostgreSQL
- Verificando a geração do registro
A ativação do registro no PostgreSQL é bastante fácil alterando algumas configurações e reiniciando o servidor. Embora essas configurações possam ser alteradas “na memória”, permitindo assim o log temporário apenas para essa sessão de cliente específica, neste tutorial abordaremos como configurar o postgres para criar permanentemente arquivos de log iterativos para todas as sessões e conexões.
Localizando o arquivo de configuração
Se você não tiver certeza de onde o arquivo
postgresql.conf
config está localizado, o método mais simples para encontrar a localização é conectar-se ao cliente postgres (psql
) e emita o SHOW config_file;
comando:postgres=# SHOW config_file;
config_file
------------------------------------------
/etc/postgresql/9.3/main/postgresql.conf
Neste caso, podemos ver o caminho para o
postgresql.conf
arquivo para este servidor é /etc/postgresql/9.3/main/postgresql.conf
. Agora basta abrir esse arquivo com seu editor de texto favorito e podemos começar a alterar as configurações:$ nano /etc/postgresql/9.3/main/postgresql.conf
Localize o caminho do diretório de dados
Também é uma boa ideia confirmar o caminho dos
data
diretório para a instalação do postgres. Isso será útil mais tarde, e recuperar o caminho é uma questão de outro simples SHOW
demonstração:postgres=# SHOW data_directory;
data_directory
------------------------------
/var/lib/postgresql/9.3/main
Em algumas instalações, o arquivo de configuração e os
data
diretório estará no mesmo caminho, enquanto em outros (como este exemplo), eles são diferentes. De qualquer forma, copie estes data
caminho do diretório para uso posterior. Configurando PostgreSQL para gerar saída de log
Com o
postgresql.conf
arquivo aberto, role para baixo até o ERROR REPORTING AND LOGGING
seção e você provavelmente verá várias opções de configuração comentadas. As mais críticas dessas configurações são log_destination
e logging_collector
. Abaixo estão as configurações recomendadas, mas sinta-se à vontade para alterá-las para atender às suas próprias necessidades:#------------------------------------------------------------------------------
# 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
Aqui estamos dizendo ao postgres para gerar logs no
CSV
formato e enviá-los para o pg_log
diretório (dentro do data
diretório). Também removemos o comentário do log_filename
configuração para produzir algum nome próprio, incluindo carimbos de data/hora para os arquivos de log. Você pode encontrar informações detalhadas sobre todas essas configurações na
official documentation
. Reiniciar o serviço PostgreSQL
A etapa final é reiniciar o serviço PostgreSQL para que essas configurações, em particular
logging_collector
, terá efeito. A execução de uma reinicialização do postgres será diferente de sistema para sistema, mas normalmente para um sistema unix, o comando será algo assim:$ service postgresql restart
* Restarting PostgreSQL 9.3 database server [ OK ]
Verificando a geração de log
Depois que o sistema for reiniciado, o registro deve começar imediatamente. Para garantir que este seja o caso, navegue até o
data/pg_log
diretório de sua instalação do postgres. Lembre-se de que pegamos os data
caminho do diretório anterior, então simplesmente navegue para esse diretório adicionando /pg_log
até o final para entrar no diretório de log:$ cd /var/lib/postgresql/9.3/main/pg_log
Agora liste os arquivos e você verá que um arquivo de log foi criado após a reinicialização do serviço anterior:
$ ls -l
-rw------- 1 postgres postgres 935 Apr 13 20:30 postgresql-2016-04-13_203022.csv
Aí temos; arquivos de log gerados automaticamente são habilitados com PostgreSQL alterando apenas algumas configurações.