如何动态确定当前的Postgres日志文件?

时间:2010-09-12 03:41:28

标签: postgresql

是否有标准的方法来确定哪个是正在运行的Postgres实例的最新日志文件?

遗憾的是,

pg_config甚至没有提供有关日志目录的信息。

1 个答案:

答案 0 :(得分:3)

日志位于数据目录的目录pg_log中。您可以要求数据库为您提供此信息:

SELECT  
    pg_ls_dir AS filename,
    pg_size_pretty((pg_stat_file('pg_log/' || pg_ls_dir)).size),
    (pg_stat_file('pg_log/' || pg_ls_dir)).access,
    (pg_stat_file('pg_log/' || pg_ls_dir)).modification,
    (pg_stat_file('pg_log/' || pg_ls_dir)).creation -- Windows only
FROM
    pg_ls_dir('pg_log')
WHERE
    (pg_stat_file('pg_log/' || pg_ls_dir)).isdir = false
ORDER BY
    modification DESC
LIMIT 1;

如果要阅读日志文件的内容,可以使用pg_read_file()

您必须超级用户才能获取相关信息。