CentOS 5.x postgresql-server-8.1
SQL文の実行エラーになるとメッセージがログに記録され、どの辺りに問題があるかも知らされるが、SQL文の全体はわからない。
2015-07-05 09:00:11 JST ERROR: syntax error at or near "VALUES" at character 1
/var/lib/pgsql/data/postgresql.conf に log_min_error_statement の設定が
あり、コメントになっている。
デフォルト値は panic。
#log_min_error_statement = panic # Values in order of increasing severity: # debug5 # debug4 # debug3 # debug2 # debug1 # info # notice # warning # error # panic(off)
error に変更する。
log_min_error_statement = error
設定反映
# service postgresql reload
エラーメッセージに続けてSQL文も記録されるようになった。
2015-07-05 09:10:11 JST ERROR: syntax error at or near "VALUES" at character 1 2015-07-05 09:10:11 JST STATEMENT: VALUES ('sequential','Sequential scans'), ('index','Index scans')
log_min_error_statement のデフォルト値は 8.1 ではpanicだが、8.2 からはerrorになっているようだ。
https://www.postgresql.jp/document/8.1/html/runtime-config-logging.html
log_min_error_statement(string)
エラー条件の原因となったSQL文をサーバログに記録するかを制御します。設定したレベル以上のエラーを発生させた全てのSQL文がログに記録されます。デフォルトは PANICです(実質、通常の使用ではこのオプションは無効になっています)。有効な値は、DEBUG5、DEBUG4、DEBUG3、DEBUG2、DEBUG1、INFO、NOTICE、WARNING、ERROR、FATAL、PANICです。例えば、これをERRORに設定すると、エラー、致命的なエラー、またはパニックを引き起こした全てのSQL文がログに記録されます。このオプションを有効にすると、サーバログに書き出されたエラー発生元を追跡することが容易になります。スーパーユーザのみがこのオプションを変更することができます。
https://www.postgresql.jp/document/8.2/html/runtime-config-logging.html
log_min_error_statement(string)
エラー条件の原因となったSQL文をサーバログに記録するかを制御します。 設定したレベル以上のメッセージについては現在のSQL文がログに記録されます。 有効な値は、DEBUG5、DEBUG4、DEBUG3、DEBUG2、DEBUG1、INFO、NOTICE、WARNING、ERROR、FATAL、PANICです。 デフォルトはERRORです。 エラー、致命的エラー、パニックを引き起こした文がログに記録されることを意味します。 失敗した文の記録を実質的に無効にするには、このパラメータをPANICに設定してください。 スーパーユーザのみがこのオプションを変更することができます。