pg_current_logfile()
是一个系统函数,它将返回当前正在使用的日志文件路径。
pg_current_logfile()
在 PostgreSQL 10 中添加。
用法
pg_current_logfile ( [ text ] ) → text
pg_current_logfile()
在没有参数的情况下调用时,将按照以下优先级顺序返回其中一个:
- 当前
stderr
日志输出的目标日志文件路径 - 当前
csvlog
日志输出的目标日志文件路径 NULL
要返回两种日志类型之一的日志文件路径,请提供 'stderr'
或 'csvlog'
作为函数参数值。请参见下面的示例。
pg_current_logfile()
只能由超级用户或被授予函数执行权限的用户执行,例如:
GRANT EXECUTE ON FUNCTION pg_catalog.pg_current_logfile() TO someuser
GRANT EXECUTE ON FUNCTION pg_catalog.pg_current_logfile(text) TO someuser
实现
pg_current_logfile()
是一个辅助函数,它报告数据目录顶层 current_logfiles
文件的内容。
变更历史
- PostgreSQL 17
- PostgreSQL 10
- 添加(提交 19dc233c)
示例
pg_current_logfile()
的基本执行示例
postgres=# SHOW log_destination; log_destination ----------------- stderr,csvlog (1 row) postgres=# SELECT * FROM pg_current_logfile(); pg_current_logfile ------------------------------ /var/log/pgsql/postgresql.log (1 row) postgres=# SELECT * FROM pg_current_logfile('csvlog'); pg_current_logfile ------------------------------ /var/log/pgsql/postgresql.csv (1 row)
使用无效参数执行 pg_current_logfile()
postgres=# SELECT * FROM pg_current_logfile('foo'); ERROR: log format "foo" is not supported HINT: The supported log formats are "stderr" and "csvlog".
参考文献
- PostgreSQL 文档: pg_current_logfile()
有用链接
- Postgres 10 亮点 - 当前日志文件的跟踪 - Michael Paquier 于 2017 年 3 月发布的博文