c# - 如何使用 log4net 记录 EF 生成的 SQL

标签 c# .net entity-framework entity-framework-6 log4net

在我的 Web 项目中,我使用的是 EF6,我想记录生成的 SQL 以进行调试。

我也在使用 log4net 来处理日志,所以我正在寻找一种将它们集成在一起的方法。

实现此目标的正确方法是什么?

最佳答案

目前我正在使用这种方法:在我的 BaseController 中我有这样的东西:

public class BaseController
{
    protected MyDbContext DataContext { get; set; }
    protected readonly ILog logger;

    public BaseController()
    {
        DataContext = new MyDbContext();
        logger = LogManager.GetLogger(GetType());

        DataContext.Database.Log = (dbLog => logger.Debug(dbLog));

        // ...
    }

    //...

}

我不知道这是否是最好的方法,但它确实有效...

关于c# - 如何使用 log4net 记录 EF 生成的 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31983706/

相关文章:

.net - 面向 .NET Framework 4.5.1 而不是 4.5 有什么好处?

.net - 只读(无更改跟踪,SaveChanges 应该抛出)EFv4 模型的选项?

c# - 使用 Entity Framework ,返回 DateTime 列的日期端口等于今天的所有行

c# - 检查远程文件是否存在

c# - 为什么 float 除以更大的 float 结果为零,我如何在 C# 中避免这种情况?

c# - 如何将其他文件添加到临时 Roslyn 工作区以将它们公开给分析器

c# - 如果我添加随机盐,如何检查密码是否正确?

.net - 没有为泛型类调用 ICorProfilerCallback::ClassUnloadStarted,即使该类已卸载

c# - .net 对象相等

c# - SQLite一对多