É possível configurar arquivos de log individuais para um banco de dados específico no Postgresql?

3

Atualizar O que quero dizer é que posso ter vários arquivos de log por banco de dados? Provavelmente não, mas eu estava curioso para saber se havia algo possível como este fora da caixa com o Postgresql ou se você precisava de um produto de terceiros ou criar seu próprio aplicativo para fazer isso.

Eu vi de outro tópico que você pode faça isso:

ALTER DATABASE your_database_name SET log_statement = 'all';

Estava pesquisando a documentação on-line e encontrei este link para registro em log

com:

log_filename (string) Quando logging_collector está ativado, esse parâmetro define os nomes de arquivos dos arquivos de log criados. O valor é tratado como um padrão de strftime, portanto,% -escapes pode ser usado para especificar nomes de arquivos que variam no tempo. (Observe que, se houver qualquer% -escapes dependente de fuso horário, o cálculo será feito na zona especificada por log_timezone.) As% -escapes suportadas são semelhantes àquelas listadas na especificação de strftime do Open Group. Observe que o strftime do sistema não é usado diretamente, portanto, as extensões específicas (não-padrão) da plataforma não funcionam. O padrão é postgresql-% Y-% m-% d_% H% M% S.log.

Se você especificar um nome de arquivo sem escape, planeje usar um utilitário de rotação de log para evitar o preenchimento do disco inteiro. Em versões anteriores a 8.4, se nenhum escape% estivesse presente, o PostgreSQL acrescentaria o tempo de criação do novo arquivo de log, mas esse não é mais o caso. Se a saída no formato CSV estiver ativada no log_destination, o .csv será anexado ao nome do arquivo de log com registro de data e hora para criar o nome do arquivo para a saída no formato CSV. (Se log_filename terminar em .log, o sufixo será substituído.)

Este parâmetro só pode ser definido no arquivo postgresql.conf ou na linha de comando do servidor.

Boo, existe alguma maneira de configurar o registro para apenas um banco de dados específico em um servidor que alguém já tentou?

    
por djangojazz 01.11.2017 / 16:46

1 resposta

2

Você pode definir o global log_statement=none . Então, para o banco de dados específico:

ALTER DATABASE my_db_name set log_statement='all'

Eu também tenho isso na minha configuração global para que o arquivo de log mostre o nome do banco de dados e o usuário.
log_line_prefix = '< %m %d %u >'

    
por 02.11.2017 / 09:38