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

标签 postgresql

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

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

最佳答案

日志在数据目录中,在目录 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() .

您必须是 super 用户才能获取信息。

关于postgresql - 如何动态确定当前的 Postgres 日志文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3693636/

相关文章:

postgresql - 插入带有序列字段的表并使用其 future 值

sql - PostgreSQL 选择加入不在列表中

postgresql - BookshelfJs 无法在创建时引入嵌套关系

postgresql - 我应该如何使用 Postgresql docker 镜像/容器?

postgresql - 使用 CREATE TABLE INHERITS 时如何继承注释

python - 如何将 PostgreSQL 警告提升为 psycopg2 中的异常?

postgresql - HEROKU POSTGRES 错误 : Connection refused Is the server running on host "..compute-1.amazonaws.com..." and accepting TCP/IP connections on port 5432?

sql - 在时间戳上使用 date_trunc 时为 "column must appear in the GROUP BY clause"

ruby-on-rails - 数据库中的大数组不会在 Rails View 中加载

linux - 在 Postigis 中创建扩展