Logo
Section 1 / 6

使用 Entity Framework Core 进行日志记录

学习使用 EF Core 中的简单日志记录功能来掌握日志记录的基础知识。

导入

使用 Entity Framework Core 进行日志记录

学习使用 EF Core 中的简单日志记录功能来掌握日志记录的基础知识。

简单日志记录

在 EF Core 中,日志记录使我们能够获取所执行 SQL 查询的相关信息。例如,日志可用于诊断查询速度慢或查询未能返回预期结果的问题。

简单日志记录 是 EF Core 中一种配置最少、无需额外 NuGet 包的记录方式。它为开发应用程序时提供了一种便捷的日志获取手段。我们将通过以下 C# 项目进行演示:

No configuration found for ID: 9c11b32d30c9ca755ffd50fdde1285e79ea991cc8fa1e6fd870bb3682a1534a8

点击“运行”按钮,然后在终端中执行以下命令:

1dotnet run

配置

我们可以通过在配置 DbContext 时调用 LogTo 方法来配置简单日志记录。上述项目中 ArtistsContext.cs 文件的 第 21 行 明确展示了这一点。

日志输出目标

我们可以将日志输出到控制台、文件或调试窗口。LogTo 方法接受一个 Action<T> 委托,该委托接收一个字符串参数。EF Core 会为每个生成的日志消息调用此委托。

输出到控制台

上述项目中 ArtistsContext.cs 文件的 第 21 行 使用 Console.WriteLine 作为 Action<T> 委托,将日志输出到控制台。

输出到文件

我们可以将日志输出到文件。以下项目演示了这一用法:

No configuration found for ID: 102a07cf23c47235722cb582f805f57d3d5241ef2e413f32f4253196a62401fc

点击“运行”按钮,然后在终端中执行以下命令:

1dotnet run

注意: 在终端中,可以使用 Linux 命令 cat logs.txt 查看新创建的 logs.txt 文件内容,其中 logs.txt 是日志文件的名称。

观察上述项目中的以下几点:

  • ArtistsContext.cs 文件的 第 9 行 创建了 StreamWriter 类的一个实例。

  • ArtistsContext.cs 文件的 第 22 行 将该实例传递给 LogTo 方法,并调用 StreamWriter 的 WriteLine 方法。

  • ArtistsContext.cs 文件的 第 30 至 40 行 对 StreamWriter 实例进行了释放。

保存数据

在 Entity Framework Core 中过滤日志