【问题标题】:Postgres not logging all queries, despite logging the duration尽管记录了持续时间,但 Postgres 没有记录所有查询
【发布时间】:2015-04-25 05:33:08
【问题描述】:

我正在尝试让我的 postgresql 9.3 服务器记录所有运行时间超过 1 秒的 sql。我已经设置:

log_min_duration=1s
log_statement='mod'
log_duration=off

对于大多数查询,日志记录工作正常,但某些语句,例如“CREATE TABLE AS”或“INSERT”没有记录语句。记录持续时间,但不是完整的 sql。

以前有没有其他人见过这种类型的问题,或者知道为什么 postgres 可能没有记录 sql? (可能是一个交易块?)非常感谢任何帮助,谢谢。

【问题讨论】:

    标签: postgresql postgresql-9.3


    【解决方案1】:

    正确的参数是log_min_duration_statement 而不是log_min_duration

    还有这个注释,来自docs

    注意:当将此选项与 log_statement 一起使用时,文本 由于 log_statement 而记录的语句将不会 在持续时间日志消息中重复。如果您不使用 syslog,它 建议您使用记录 PID 或会话 ID log_line_prefix 以便您可以将语句消息链接到 使用进程 ID 或会话 ID 的稍后持续时间消息。

    考虑是对问题的一个很好的解释。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-05
      • 2019-12-03
      • 1970-01-01
      • 1970-01-01
      • 2018-04-27
      • 2013-02-18
      • 2015-02-02
      • 2021-06-05
      相关资源
      最近更新 更多