5.6. エラー報告とログ取得

5.6.1. ログの出力先

log_destination (string)

Pgpool-IIは、Pgpool-IIのメッセージのログ出力先を2種類サポートします。 複数のログ出力先を使用したい場合は、希望するログ出力先をカンマで区切ったリストをパラメータに設定することができます。

#for example to log on both syslog and stderr
log_destination = 'syslog,stderr'
            

デフォルトではstderrのみにログ出力します。

注意: log_destinationでsyslogオプションを使用できるようにするために、いくつかのシステムではシステムのsyslogデーモンの設定を変更しなければならないでしょう。 Pgpool-IIではログをLOCAL0からLOCAL7までのsyslogファシリティで記録することができます(syslog_facilityを参照してください)。 しかし、ほとんどのプラットフォームのデフォルトのsyslog設定ではこれらのメッセージはすべて破棄されます。 うまく動作させるためにsyslogデーモンの設定に以下のようなものを追加しなければならないでしょう。

local0.*    /var/log/pgpool.log
						

このパラメータはPgpool-IIの設定を再読み込みすることで変更可能です。

syslog_facility (enum)

syslogへのログ取得が有効な場合、このパラメータは使用されるsyslogの「facility」を決定します。 LOCAL0LOCAL1LOCAL2LOCAL3LOCAL4LOCAL5LOCAL6LOCAL7の中から選んでください。 デフォルトはLOCAL0です。 使用しているシステムのsyslogデーモンの文書を同時に参照してください。

このパラメータはPgpool-IIの設定を再読み込みすることで変更可能です。

syslog_ident (string)

syslogにログ取得が有効な場合、このパラメータはsyslogログ内のPgpool-IIメッセージを特定するのに使用するプログラム名を確定します。 デフォルトはpgpoolです。

このパラメータはPgpool-IIの設定を再読み込みすることで変更可能です。

5.6.2. いつログを取得するか

client_min_messages (enum)

どのメッセージ階層をクライアントに送るかを管理します。 有効な値は、DEBUG5DEBUG4DEBUG3DEBUG2DEBUG1LOGNOTICEWARNING、およびERRORです。 それぞれの階層はそれに続く全ての階層を包含します。 デフォルトはNOTICEです。

このパラメータはPgpool-IIの設定を再読み込みすることで変更可能です。 現在のセッションでのパラメータ値は、PGPOOL SETコマンドで変更することもできます。

log_min_messages (enum)

どのメッセージ階層をサーバログに書き込むかを管理します。有効な値はDEBUG5DEBUG4DEBUG3DEBUG2DEBUG1INFONOTICEWARNINGERRORLOGFATAL、およびPANICです。 それぞれの階層はその下の全ての階層を含みます。 デフォルトはWARNINGです。

このパラメータはPgpool-IIの設定を再読み込みすることで変更可能です。 現在のセッションでのパラメータ値は、PGPOOL SETコマンドで変更することもできます。

5.6.3. 何をログに

log_statement (boolean)

onに設定されている場合、全てのSQL文をログ出力します。

このパラメータはPgpool-IIの設定を再読み込みすることで変更可能です。 現在のセッションでのパラメータ値は、PGPOOL SETコマンドで変更することもできます。

log_per_node_statement (boolean)

log_statementと似ていますが、DBノード単位でログが出力されます。 レプリケーションや負荷分散が動いていることを確認するのに便利です。

このパラメータはPgpool-IIの設定を再読み込みすることで変更可能です。 現在のセッションでのパラメータ値は、PGPOOL SETコマンドで変更することもできます。

log_client_messages (boolean)

onに設定されている場合、クライアントメッセージをログ出力します。

このパラメータは、Pgpool-IIの設定を再読み込みすることで変更可能です。 現在のセッションでのパラメータ値は、PGPOOL SETコマンドで変更することもできます。

log_hostname (boolean)

onに設定されている場合、psコマンドの結果、および(log_connectionsがonの場合には)接続時のログに、IPアドレスではなくホスト名を表示します。

このパラメータはPgpool-IIの設定を再読み込みすることで変更可能です。

log_connections (boolean)

onに設定されている場合、全てのクライアント接続をログへ出力します。

このパラメータはPgpool-IIの設定を再読み込みすることで変更可能です。

log_error_verbosity (enum)

ログ取得されるそれぞれのメッセージに対し、サーバログに書き込まれる詳細の量を制御します。 有効な値は、TERSEDEFAULT、およびVERBOSEで、それぞれは表示されるメッセージにより多くのフィールドを追加します。 TERSEDETAILHINTQUERY、およびCONTEXTエラー情報を除外します。

このパラメータはPgpool-IIの設定を再読み込みすることで変更可能です。 現在のセッションでのパラメータ値は、PGPOOL SETコマンドで変更することもできます。

log_line_prefix (string)

これは、各ログ行の先頭に出力するprintfの書式文字列です。 %から始まる"エスケープシーケンス"は、後述の通りのステータス情報で置き換えられます。 認識できないエスケープは無視されます。 他の文字はそのままログ行に出力されます。 デフォルトは '%t: pid %p: 'で、タイムスタンプとプロセスIDを印字します。 これは、Pgpool-II V3.4より前のバージョンとの互換性を保つためです。

表 5-5. log_line_prefix escape options

エスケープ効果
%aクライアントのアプリケーション名
%pプロセスID (PID)
%Pプロセス名
%tタイムスタンプ
%dデータベース名
%uユーザ名
%lプロセスごとのログ行番号
%%'%' 文字自身

このパラメータはPgpool-IIの設定を再読み込みすることで変更可能です。