Recebo o arquivo de log atual usando SQL sem entrar no servidor via ssh. Então eu uso uma consulta como a abaixo;
SELECT pg_read_binary_file(
concat_ws('/',
current_setting('log_directory'),
'postgresql-Fri.log'
)
);
Os arquivos de log não são muito grandes, então estou bem com isso. O problema é que não posso usar essa consulta de maneira genérica. Existe uma maneira de obter 'postgresql-Fri.log' da minha log_filename
configuração que está atualmente postgresql-%a.log
, mas o formato pode ser diferente?
Agora existe uma
pg_current_logfile()
função retornando esta informação:mas é um novo recurso do PostgreSQL 10, que você provavelmente não executa, pois ainda não foi
General Availability
lançado (ainda estáRelease Candidate
no momento).Com as versões anteriores, você fica sozinho para descobrir o nome atual, seja interpretando
log_filename
ou encontrando a última modificação, por exemplo, com uma combinação depg_ls_dir
epg_stat_file
:Isso pode falhar se o relógio do servidor retroceder ou se os arquivos que não são de log forem despejados no mesmo diretório que os arquivos de log.