entity-framework - 在 MVC Web 应用程序中使用 context.Database.Log

标签 entity-framework asp.net-mvc-4 logging

使用指南 here ,我正在尝试记录我的 MVC Web 应用程序生成的 SQL。

该指南使用以下行:

context.Database.Log = Console.Write;

这显然不适用于 Web 应用程序。该指南描述了 Log 属性:

The DbContext.Database.Log property can be set to a delegate for any method that takes a string.



正是这个我不明白,代表们只是让我感到困惑。如何使用此 EF6 功能?

最佳答案

使用委托(delegate)允许您编写任何带字符串的函数。作为一个非常简单的文件日志记录,您可以执行以下操作:

context.Database.Log = message => File.AppendText("C:\\mylog.txt").WriteLine(message);

在 Web 环境中,您可能希望使用 Trace 来记录此信息:
context.Database.Log = message => Trace.WriteLine(message);

您可以在 MSDN page on Anonymous Functions 上查看更多使用委托(delegate)的示例。 .

关于entity-framework - 在 MVC Web 应用程序中使用 context.Database.Log,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19299038/

相关文章:

asp.net-mvc - 如何在 Entity Framework 中保存导航属性

c# - 将属性设置为虚拟时停止加载 Entity Framework

asp.net-mvc - 从 Azure 网站取消发布 MVC 4 项目

database - 不使用普通 SQL 数据库记录数据?

c# - ILogger 不使用 Serilog 写入控制台

c# - TransactionScope 是否适用于不同的 Context 对象

asp.net-mvc-4 - MVC4 - 提交期间的部分 View 模型绑定(bind)

c# - 未在区域中调用 MVC Controller

java - 如何使用 Spring AOP 和 SPring boot 进行日志记录

c# - DbSortClause 表达式的类型必须是顺序可比参数名称 :Key