ef core使用simple logging輸出日誌

ef core使用simple logging輸出日誌

在使用ef core的時候,很多時候需要知道ef core實際執行的sql語句是什麼。

最后更新 2022/5/4 下午3:56
MyIO
预计阅读 2 分钟
分类
EF Core
标签
.NET C# EF Core ORM

在使用 ef core 的時候,很多時候需要知道 ef core 實際執行的 sql 語句是什麼。

simple logging 是 ef core 提供的一項功能,可用於在開發和調試應用程式時輕鬆獲取日誌。這種形式的日誌記錄需要最少的配置,而不需要其他 nuget 包。

功能一瞥

配置起来非常简单,只需在DbContext.OnConfiguring实现中调用LogTo方法即可:

public class DefaultDbContext : DbContext
{
    protected override void OnConfiguring(DbContextOptionsBuilder options)
    {
        ...

        options.LogTo(Console.WriteLine);
    }
    ...
}

LogTo需要一个 Action 委托接受字符串,比如Console.WriteLine,你也可以编写自定义方法决定如何输出日志。

篩選

默認情況下,simple logging 記錄 debug 或更高級別的每條日誌。這樣會導致輸出的日誌過多,對調試沒有任何幫助,可以限制只記錄 information 或更高級別的日誌:

options.LogTo(Console.WriteLine,
    Microsoft.Extensions.Logging.LogLevel.Information);

查詢標記

但是,这样还是会产生很多日志。这时我们可以结合查询标记,帮助我们快速定位到需要的日志:

var users = context.User.TagWith("查询所有用户").ToList();

Keep Exploring

延伸阅读

更多文章