1
私のアプリケーションに問題があります。私の要件の1つは、ここで起こっているのと同様に、PLPGSQL関数を呼び出したときにpostgresで出力されるメッセージをキャプチャすることです。npgsqlでpostgresメッセージを取得
Get warning messages through psycopg2
私の問題を除いて、npgsqlにあります。私は、ログマネージャが設定している:
NpgsqlLogManager.Provider = new ConsoleLoggingProvider(NpgsqlLogLevel.Trace, true, true);
をそして私はこの呼び出しを行います。
_db.ExecuteScalar("SELECT test_warning();");
test_warningは、カスタムSQL関数です:
CREATE OR REPLACE FUNCTION test_warning()
RETURNS void AS
$BODY$
begin
raise info 'this is only a test';
end;
$BODY$
LANGUAGE plpgsql VOLATILE;
と_db
はIDbConnection
で、クエリはDapperを使用して行われます。警告/情報メッセージの
DEBUG [40560] Opened connection to (Database Server)
TRACE [40560] Start user action
TRACE [40560] ExecuteNonScalar
DEBUG [40560] Executing statement(s):
SELECT test_warning()
TRACE [40560] End user action
TRACE [40560] Closing connection
TRACE [40560] Really closing connection
DEBUG [40560] Connection closed
は言及:私のログメッセージでは、私は関数の呼び出しだけでなく、いくつかの他の接続情報を取得しています。
[処理に注目してください](https://www.postgresql.org/ docs/current/static/libpq-notice-processing.html)接続ハンドラへのアクセス権があれば、それは簡単です。 – Abelisto