Estoy corriendo Postgresql 9.1en Ubuntu. La versión exacta de Postgresql es 9.1+129ubuntu1como muestra mi administrador de paquetes.
Tengo 2 bases de datos que se usan activamente y se usan desde un servidor remoto.
Deseo registrar consultas que tengan un largo tiempo de ejecución. Así que configuré los siguientes parámetros en el /etc/postgresql/9.1/main/postgresql.confarchivo
log_min_duration_statement = 10000
log_statement = 'mod'
entonces Postgresql registrará consultas que demoren más de 10 segundos.
Pero cuando reloadconfiguro Postgres, Postgresql comienza a registrar cada consulta que se ajusta al log_statementvalor. Que establezca la duración en 100 segundos para estar seguro
log_min_duration_statement = 100000
Pero Postgresql sigue registrando cada consulta que se ajusta al log_statementvalor, independientemente del log_min_duration_statementvalor.
Establecer log_statementa noneparecía dejar de iniciar sesión.
¿Hay algo que me haya perdido de la configuración?
fuente

log_statementasí quelog_min_duration_statementdebería funcionar?SELECT,UPDATEo alguna DDL), entonces sí.Respuestas:
Estabas cerca Su última idea es en realidad el camino a seguir:
Entonces, no se registrará ninguna declaración, excepto las que se ejecutan por más de 10 segundos, incluida la cadena de consulta en sí. El registro puede haber parecido detenerse porque 10 segundos es un umbral alto. Estoy usando 2 segundos normalmente, pero YMMV.
Esta respuesta relacionada en SO tiene más:
No se puede lograr que log_min_duration_statement funcione
fuente
log_statementesnone, por lo que no establecerlo o establecerlononetiene el mismo efecto.