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

dav*_*ooh 3 .net c# log4net entity-framework entity-framework-6

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

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

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

dav*_*ooh 6

目前我正在使用这种方法:在我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));

        // ...
    }

    //...

}
Run Code Online (Sandbox Code Playgroud)

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