我通过使用 SQL 获取当前日志文件,而无需通过 ssh 进入服务器。所以我使用如下所示的查询;
SELECT pg_read_binary_file(
concat_ws('/',
current_setting('log_directory'),
'postgresql-Fri.log'
)
);
日志文件不是太大,所以我没问题。问题是,我不能以通用方式使用此查询。有没有办法从我log_filename
当前的设置中获取“postgresql-Fri.log”,postgresql-%a.log
但格式可能不同?
现在有一个
pg_current_logfile()
函数返回此信息:但它是 PostgreSQL 10 的一项新功能,您可能不会运行它,因为它尚未作为
General Availability
发行版发布(目前仍在Release Candidate
)。对于以前的版本,您几乎可以自己找出当前名称,方法是通过解释
log_filename
或查找最新修改的名称,例如结合使用pg_ls_dir
和pg_stat_file
:如果服务器的时钟倒退或者非日志文件被转储到与日志文件相同的目录中,这可能会失败。