使用log4net从类库中登录Api

时间:2015-10-13 05:49:21

标签: c# entity-framework log4net

我有一个我正在尝试调试的webapi。

我使用通用存储库结构,因此我所有的实体框架调用都在一个单独的类库中进行。

所以我的web Api post end point实际上只调用了service.insert(entity)。通用插入位于单独的类库中。

目前正在设置日志并在api中工作。现在我想在父应用程序文本日志文件中记录实体框架生成的插入Sql(因为在实时环境中发生了一些奇怪的事情)

我该怎么做呢?

1 个答案:

答案 0 :(得分:2)

如何执行此操作取决于您使用的实体框架的版本。在EF6及更高版本中它很简单:

using (var context = new DataContext())
{
    // log is a log4net logger
    context.Database.Log = message => log.Debug(message);

    // insert the entity
}

有关详细信息,请参阅this blog series - part 3显示使用命令拦截器记录到NLog的示例 - 以及this page用于与早期版本的EF相关的选项。