2012-01-07 4 views
3

私はPostgreSQL用のC拡張ライブラリを開発中です。私は将来のデバッグに役立つereport()コールをたくさん使用しています。PostgreSQL:ereport()の出力はどこに行きますか?

私のコードでの使用の典型的な例は、このようなものになるだろう:

ereport(NOTICE, (errmsg("[%s]: Returned nonzero result (%d).", (const char*)__FUNCTION__, ret))); 

しかし、私は私のメッセージを/var/log/postgresql/postgresql-8.4-main.logで見たときにいないようです私が想定しているものからのメッセージはdbサーバデーモンだけです。

ログメッセージはどこに保存されていますか?

ところで、私は非クリティカルメッセージのログが新規インストールで有効になっていない、デフォルトではUbuntu Linuxの上でPG 8.4(10.0.4)

+0

http://www.postgresql.org/docs/current/static/runtime-config-logging.html –

答えて

3

を実行しています。 log_destinationlogging_collectorを設定して設定します。

PostgreSQLにはいくつかのログレベルがあり、デフォルトではNOTICEレベルはログファイルに保存されません(有効になっている場合でも)。これはlog_min_messagesの設定で構成されます。ただし、NOTICEはデフォルトでクライアントに送信されます。これはclient_min_messagesの設定で構成されます。

あなたはこれらのログファイルに保存したいのであれば、あなたはあなたのコード内でWARNINGNOTICEを変更、またはlog_min_messages = noticeを設定するかがあります。

を参照してください。このhttp://www.postgresql.org/docs/8.4/static/runtime-config-logging.html と多分これhttp://www.depesz.com/index.php/2011/05/06/understanding-postgresql-conf-log/

関連する問題