syslogを含めて、サーバメッセージのログ取得に対し数種類の方法を提供します。Windowsでは、eventlogも同時に提供します。このパラメータを設定するには、コンマ区切りでお好みのログ出力先を記載します。デフォルトでは、ログはstderrのみに出力されます。このパラメータはpostgresql.confファイル内、または、サーバのコマンドラインでのみ設定されます。redirect_stderr(boolean)このパラメータにより、stderrに送られるメッセージを取り出し、ログファイルにリダイレクトすることができます。この方法とstderrへのログとの組み合わせはsyslogへのログよりもしばしば有用です。メッセージの一部の種類がsyslogでは出力されない可能性があるためです(一般的な例として、ダイナミックリンカのエラーメッセージがあります)。このパラメータはサーバ起動時のみ設定可能です。log_directory(string)redirect_stderrが有効な場合、このパラメータはログファイルが作成されるディレクトリを決定します。ディレクトリは絶対パス、もしくはクラスタデータディレクトリの相対パスとして指定されます。このパラメータは、postgresql.confファイル内、または、サーバのコマンドラインでのみで設定されます。log_filename(string)redirect_stderrが有効な場合、このパラメータは作成されたログファイルのファイル名を設定します。値はstrftimeパターンとして扱われるため、%エスケープを使用して、時刻によって変動するファイル名を指定することができます。%エスケープが存在しない場合、PostgreSQLは新規ログファイルが開かれた時刻を追加します。対し、選択されたファイル名はserver_log.1093827753となります。このパラメータはpostgresql.confファイル内、または、サーバのコマンドラインでのみで設定されます。log_rotation_age(integer)redirect_stderrが有効な場合、このパラメータは個々のログファイルの最大寿命をを決定します。ここで指定した時間(分単位)経過すると、新しいログファイルが生成されます。ゼロに設定することで、時間に基づいた新しいログファイルの生成は無効になります。このパラメータは、postgresql.confファイル内、または、サーバのコマンドラインでのみで設定されます。log_rotation_size(integer)redirect_stderrが有効な場合、このパラメータは個々のログファイルの最大要領を決定します。ここで指定したキロバイト分ログファイルに出力された後、新しいログファイルが生成されます。ゼロに設定することで、サイズに基づいた新しいログファイルの生成は無効になります。このパラメータはpostgresql.confファイル内、または、サーバのコマンドラインでのみで設定されます。log_truncate_on_rotation(boolean)redirect_stderrが有効な場合、このパラメータにより、PostgreSQLは既存の同名のファイルに追加するのではなく、そのファイルを切り詰める(上書きする)ようになります。切り詰めは時間を基にしたローテーションのために新規にファイルが開かれた時にのみ発生し、サーバ起動時やサイズを基にしたローテーションでは発生しません。偽の場合、全ての場合において既存のファイルは追記されます。この設定をpostgresql-%H.logのようなlog_filenameと組み合わせて使用すると、24個の時別のログファイルが生成され、それらは周期的に上書きされることになります。このパラメータはpostgresql.confファイル内、または、サーバのコマンドラインで設定されます。server_log.Mon、server_log.Tue、等とし、そして自動的に前週のログを今週のログで上書きするには以下のように設定します。1440に設定します。1000000に設定します。log_filenameに%Mを含めると、元の時間毎のファイル名と異なる名前を選択する可能性がある、サイズを元にしたローテーションを行うことができます。syslog_facility(string)syslogへのログ取得が有効な場合、このパラメータはsyslogの"facility"が使われるように確定します。LOCAL0、LOCAL1、LOCAL2、LOCAL3、LOCAL4、LOCAL5、LOCAL6、LOCAL7の中から選んでください。デフォルトはLOCAL0です。使用しているシステムのsyslogデーモンの文書を同時に参照してください。このパラメータはpostgresql.confファイル内、または、サーバのコマンドラインでのみで設定されます。syslog_ident(string)syslogにログ取得が有効な場合、このパラメータはsyslogログ内のPostgreSQLメッセージを特定するのに使用するプログラム名を確定します。デフォルトはpostgresです。このパラメータは、postgresql.confファイル内、または、サーバのコマンドラインでのみで設定されます。いつログを取得するかclient_min_messages(string)どのメッセージ階層をクライアントに送るかを管理します。WARNING、ERROR、FATAL、およびPANICです。それぞれの階層はそれに続く全ての階層を包含します。階層が後の方になるにつれ、より少ないメッセージが送られます。デフォルトはNOTICEです。ここでのLOGの優先順位がlog_min_messagesの場合と異なることに注意してください。log_min_messages(string)どのメッセージ階層をサーバログに書き込むかを管理します。それぞれの階層はその下の全ての階層を含みます。階層を低くする程、より少ないメッセージがログに送られます。デフォルトはNOTICEです。ここでのLOGの優先順位がclient_min_messagesの場合と異なることに注意してください。スーパユーザのみこの設定を変更できます。log_error_verbosity(string)ログされたそれぞれのメッセージに対しサーバログ内に書き込まれる詳細度合を制御します。有効な値は、TERSE、DEFAULT、およびVERBOSEで、それぞれ表示するメッセージのフィールドが追加されていきます。スーパーユーザのみがこの設定を変更することができます。log_min_error_statement(string)エラー条件の原因となったSQL文をサーバログに記録するかを制御します。設定したレベル以上のメッセージについては現在のSQL文がログに記録されます。有効な値は、DEBUG5、DEBUG4、DEBUG3、DEBUG2、DEBUG1、INFO、NOTICE、WARNING、ERROR、FATAL、PANICです。デフォルトはERRORです。エラー、致命的エラー、パニックを引き起こした文がログに記録されることを意味します。失敗した文の記録を実質的に無効にするには、このパラメータをPANICに設定してください。スーパーユーザのみがこのオプションを変更することができます。log_min_duration_statement(integer)文の実行に少なくとも指定したミリ秒数かかった場合、それぞれの文の実行に要した時間をログに記録します。0に設定すれば、すべての文の実行時間が出力されます。-1(デフォルト)は、文実行時間の記録を無効にします。250msと設定した場合、250msもしくはそれ以上長くかかった全てのSQL命令文がログとして残ります。このパラメータを有効にすることにより、アプリケーションで最適化されていない問い合わせを追跡するのが便利になります。スーパーユーザのみこの設定を変更できます。拡張問い合わせプロトコルを使用するクライアントでは、Parse、Bind、Executeそれぞれの段階で要した時間が独立して記録されます。このオプションとlog_statementを一緒に使用する時、log_statementのために記録されるテキスト版の文は、実行時間のログには繰り返して出力されません。syslogを使用していなければ、プロセスIDとセッションIDを使用して、文メッセージと後の実行時間メッセージを関連付けできるように、log_line_prefixを使用してPIDまたはセッションIDをログに記録することを勧めます。silent_mode(boolean論理値)サーバをメッセージ出力なしで実行します。このパラメータを設定すると、サーバは自動的にバックグラウンドで起動し、制御端末を切り離します。サーバの標準出力や標準エラーは/dev/nullにリダイレクトされ、つまり、出力されたメッセージは全て喪失します。syslogロギングを有効にしていない、あるいはredirect_stderrを有効にしていない限り、エラーメッセージを確認することができなくなりますので、このパラメータの使用は勧められません。このパラメータはサーバ起動時にのみ設定可能です。以下に、これらの設定で使用される各種メッセージの重要度レベルの一覧を示します。DEBUG[1-5]開発者によって使用される情報を提供します。INFOユーザによって暗黙的に要求された情報を提供します。VERBOSE処理中。NOTICE長い識別子の切り詰め、および主キーの一部としてのインデックスの作成など、ユーザの補助になる情報を提供します。WARNINGトランザクションブロック外でのCOMMITの様な、ユーザへの警告を提供します。ERROR現在のコマンドを中断させる原因となったエラーを報告します。LOGチェックポイントの活動の様な、管理者に関心のある情報を報告します。FATAL現在のセッションを中断させる原因となったエラーを報告します。PANIC全てのセッションを中断させる原因となったエラーを報告します。何をログにdebug_print_parse(boolean)debug_print_rewritten(boolean)debug_print_plan(boolean)debug_pretty_print(boolean)これらのパラメータは、生成される各種のデバッグ出力を有効にします。実行された問い合わせそれぞれに対して、最終的なパースツリー、問い合わせリライタの出力、実行計画を出力します。debug_pretty_printはより読みやすくその表示をインデントしますが、出力書式がより長くなります。client_min_messagesもしくはlog_min_messagesはそれぞれ、実際に出力をクライアントもしくはサーバログに送信するために、DEBUG1以下にしなければなりません。デフォルトでは、これらのパラメータは無効です。log_connections(boolean)これはそれぞれの成功した接続を詳述する文字行をサーバログに出力します。デフォルトはオフですが、多分とても便利です。received"メッセージは問題を必要として指摘するものではありません。このパラメータはpostgresql.confファイル内、または、サーバのコマンドラインでのみで設定されます。log_disconnections(boolean)これはlog_connections同様の出力をサーバログに行い、さらに加えて、セッション終了時にセッションの期間も出力します。デフォルトではこれは無効です。このパラメータはpostgresql.confファイル内、または、サーバのコマンドラインでのみで設定可能です。log_duration(boolean)すべての完了した文について、その経過時間をログするようにします。デフォルトはoffです。スーパーユーザのみがこの設定を変更することができます。拡張問い合わせプロトコルを使用するクライアントでは、Parse、Bind、Executeそれぞれの段階で要した時間が独立して記録されます。このオプションとlog_min_duration_statementを0に設定する方法との違いは、log_min_duration_statementを超えた場合、テキスト版の問い合わせが強制的に出力されるのに対して、このオプションでは出力されないという点です。したがって、log_durationがon、かつ、log_min_duration_statementが正の値を持つ場合、すべての経過時間がログに記録されますが、閾値を超えた文のみがテキスト版の問い合わせが含められるようになります。この動作は、高負荷なインストレーションで統計情報を収集する際に有用です。log_line_prefix(string)これは、各ログ行の先頭に出力するprintfの書式文字列です。デフォルトは空文字列です。認識可能なエスケープは後述の通りに置換されます。この他のエスケープは無視されます。他の文字はそのままログ行に出力されます。エスケープの中には、セッションプロセスによってのみ認識可能なものがあり、これらは主サーバプロセスなどのバックグラウンドプロセスには適用されません。Syslogは独自に時刻とプロセスID情報を出力しますので、Syslogを使用している場合はおそらく、対応するエスケープを使用しようとは思わないでしょう。このパラメータは、postgresql.confファイル内、または、サーバのコマンドラインでのみで設定することができます。タイムスタンプ(ミリ秒無し。このログ行を生成したコマンドです。各セッションに対する一意な識別子です。これは2つの4バイト16進数の番号をドットで区切ったものです(先頭に0は付きません)。この番号はセッションの開始時刻とプロセスIDです。これらの項目の出力を省略して出力行を短くするためにも使用することができます。各プロセスのログ行の番号。