使用 Npgsql 和 EF Core 记录通知

Log notices with Npgsql and EF Core

我正在使用 Npgsql 5 和 EF Core 5。

我将 "Microsoft.EntityFrameworkCore": "Information" 添加到我的 appsettings.json

假设我有一个包含以下内容的 sql 命令:

RAISE NOTICE 'foo';

我如何配置提供程序来记录它?

PostgreSQL 通知由 Npgsql ADO.NET 提供程序作为常规 .NET 事件发出。您可以为它注册一个处理程序,如下所示:

conn.Notice += (_, eventArgs) => Console.WriteLine(eventArgs.Notice.MessageText);

您可以将 Console.WriteLine 替换为任何可以将其记录到您的日志记录框架的内容。

目前没有通过 EF Core 日志记录自动路由的集成,我已经打开 https://github.com/npgsql/efcore.pg/issues/2106 来为 7.0 执行此操作。