2011-12-07 29 views
4

我一直在使用Google搜索超過2個小時,但我真的被這個問題困住了。
我想要PostgreSQL(我在Debian上使用8.4版本)開始只記錄緩慢的查詢。無法讓log_min_duration_statement正常工作

要擴展我用下面的配置,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' 

配置的其餘部分是所有默認設置(註釋掉)。日誌工作,但它會記錄所有的語句,甚至低於1000(毫秒)的閾值。如果我做了「全部顯示」,我會看到所有設置都有效。我也嘗試重新啓動Postgres。

我希望有人能幫助我。

回答

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 
12
log_statement = 'all' 

指示服務器記錄所有語句,就這麼簡單。 此外,

log_duration = on 

還指示服務器記錄所有的陳述,包括持續時間信息。
改變,要

log_statement = none 
log_duration = off 

無需引號。或者將它們註釋掉並重新加載。 然後就沒語句記錄下來,除了那些運行時間超過1000毫秒 - 由

log_min_duration_statement = 1000 

這是all in the excellent manual指示。

+0

可以postgres日誌只有持續時間超過閾值的查詢? – Vlad

+0

任何洞察到這個http://stackoverflow.com/questions/36786949/duration-logged-but-not-the-statement-postgresql-are-there-any-specific-quer – inquisitive