[pgsql-jp: 40149] Re: ログの仕様につきまして

Takahiro Itagaki itagaki.takahiro @ oss.ntt.co.jp
2010年 1月 21日 (木) 19:17:21 JST


Kayano Motoharu <M.Kayano @ cec-ltd.co.jp> wrote:

> 「LOG:」「STATEMENT:」の両方で、実行されたSQL文が表示されていますが
> この2つの違いについてご存知でしょうか?

この2つは、ログの1メッセージを表すか否かが異なります。

LOG はログの1メッセージのレベルを表します。今回のケースでは
> log_statement = 'all'
により全てのクエリについて出力されていると思われます。
他には FATAL, ERROR, WARNING, INFO, NOTICE, DEBUG 等があります。

一方、STATEMENT は追加情報で、直前のログに付随するメッセージです。
例えば、エラーになるコマンド
    =# SELECT error;
を実行してみると、
    [1. ] LOG:  statement: SELECT error;
    [2.1] ERROR:  column "error" does not exist at character 8
    [2.2] STATEMENT:  SELECT error;
のような表示になります。[2.x] は2つ併せて一揃いのメッセージで、
STATEMENT は ERROR に対する付加情報です。
この種類のタグには、STATEMENT の他、DETAIL や HINT 等があります。


これらのメッセージは pgpool ではなく PostgreSQL サーバが出力するものなので、
片方のサーバでしか出力されていないようならば負荷分散が働き、
ほぼ同時に両方のサーバで出力されるようならば、クエリが両方に送られたと
考えてよいかと思います。

------------------------------------------------------------
NTT オープンソース ソフトウェア センタ
板垣貴裕 <itagaki.takahiro @ oss.ntt.co.jp>





pgsql-jp メーリングリストの案内