EF Core使用Simple Logging输出日志
Posted dotNET跨平台
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EF Core使用Simple Logging输出日志相关的知识,希望对你有一定的参考价值。
在使用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();
如果觉得这篇文章对你有所启发,请关注我的个人公众号”My IO“,记住我!
以上是关于EF Core使用Simple Logging输出日志的主要内容,如果未能解决你的问题,请参考以下文章
EF6 SQL Logging – Part 1: Simple Logging | One Unicorn