无法使log_min_duration_statement工作

Fra*_*ijn 5 postgresql configuration logging postgresql-8.4

我一直在谷歌搜索超过2个小时,但我真的很困惑这个.
我想PostgreSQL(我在Debian上使用的是8.4版本)开始只记录慢速查询.

为此,我在以下配置中使用postgresql.conf:

log_destination = 'csvlog'
logging_collector = on
log_min_messages = log
log_min_duration_statement = 1000
log_duration = on
log_line_prefix = '%t '
log_statement = 'all' 
Run Code Online (Sandbox Code Playgroud)

配置的其余部分都是默认设置(已注释掉).日志记录有效,但它会记录所有语句,甚至是低于1000(ms)阈值的语句.如果我执行'全部显示',我会看到所有设置都有效.我也试过重启Postgres.

我希望有人可以帮助我.

Erw*_*ter 17

log_statement = 'all'
Run Code Online (Sandbox Code Playgroud)

指示服务器记录所有语句,就这么简单.此外,

log_duration = on
Run Code Online (Sandbox Code Playgroud)

还指示服务器记录所有语句,包括持续时间信息.
改为

log_statement = none
log_duration = off
Run Code Online (Sandbox Code Playgroud)

不需要报价.或者将它们评论出来并重新加载.然后不记录任何语句,除了那些运行时间超过1000毫秒的语句 - 由指示

log_min_duration_statement = 1000
Run Code Online (Sandbox Code Playgroud)

一切都在优秀的手册中.


fil*_*rem 0

应该:

log_destination = 'csvlog'
logging_collector = on
log_min_duration_statement = 1000
log_line_prefix = '%t %p %r %d %u '### more context
log_statement = 'ddl' ### log schema changes 
Run Code Online (Sandbox Code Playgroud)