pg_rotate_logfile()
是一个用于轮换当前日志文件的系统函数
pg_rotate_logfile()
添加于 PostgreSQL 8.1。
用法
pg_rotate_logfile() → boolean
logging_collector
必须设置为 on
,pg_rotate_logfile()
才能发挥作用。
执行时,pg_rotate_logfile()
将根据 log_filename
中定义的命名模式创建一个新的日志文件。
请注意,如果 log_filename
的定义方式导致新文件名与当前文件名相同,则不会进行日志文件轮换。例如,如果 log_filename
设置为例如 postgres.log
或 postgresql-%F.log
(%F
解析为当前日期),则不会进行轮换。
更改历史记录
- PostgreSQL 8.1
- 添加 (提交 b609695b)
示例
pg_rotate_logfile()
的基本执行
postgres=# SELECT pg_current_logfile(); pg_current_logfile ------------------------------------------------- /var/log/pgsql/postgresql-2020-11-24_000000.log (1 row) postgres=# SELECT pg_rotate_logfile(); pg_rotate_logfile ------------------- t (1 row) postgres=# SELECT pg_current_logfile(); pg_current_logfile ------------------------------------------------- /var/log/pgsql/postgresql-2020-11-24_063301.log (1 row)
pg_rotate_logfile
() 无效执行
postgres=# SHOW log_filename; log_filename ------------------- postgresql-%F.log (1 row) postgres=# SELECT pg_current_logfile(); pg_current_logfile ------------------------------------------ /var/log/pgsql/postgresql-2020-11-24.log (1 row) postgres=# SELECT pg_rotate_logfile(); pg_rotate_logfile ------------------- t (1 row) postgres=# SELECT pg_current_logfile(); pg_current_logfile ------------------------------------------ /var/log/pgsql/postgresql-2020-11-24.log (1 row)
当 logging_collector
设置为 off
(禁用) 时执行 pg_rotate_logfile()
WARNING: rotation not possible because log collection not active pg_rotate_logfile ------------------- f (1 row)
参考
- PostgreSQL 文档: 服务器信号函数