如何在Postgres 9.6中截断日志语句

时间:2017-09-01 01:34:54

标签: postgresql postgresql-9.6

我们有一个大型查询已知需要很长时间并且经常运行。我们只对此查询的记录持续时间感兴趣,而不是完整查询,大约10-20M个字符长,并占用大量磁盘空间。

目前在/var/lib/pgsql/9.6/data/pg_log/postgresql-2017-09-01.log中:

2017-09-01 01:00:12.511 UTC用户@dbname 25304 xxxx日志:持续时间:966.603 ms语句:INSERT INTO table_name(col1,col2,col3 ...)VALUES(val1)(val2) (val3)....

我们希望实现的目标:

  1. 仍然记录持续时间,但可能只记录语句的第一个xxx(比方说,200)字符。
  2. 我们可能会增加 log_min_duration_statement ,因此根本不会记录此查询,但我们还希望记录其他查询,因此这不是一个好的解决方案。
  3. 如果无法记录部分查询,我们是否只能从记录中排除此查询,或者不记录此表,还是记录长于 log_min_duration_statement 的其他查询?
  4. Current Settings

    我已经研究了一段时间但没有找到解决方案。如果有人能说出一些很棒的话。谢谢!

0 个答案:

没有答案