mar*_*ith 8 logging entity-framework asp.net-mvc-4
在这里使用指南,我正在尝试记录我的MVC Web应用程序生成的SQL.
该指南使用该行:
context.Database.Log = Console.Write;
Run Code Online (Sandbox Code Playgroud)
这显然不适用于Web应用程序.该指南描述了Log属性:
对于采用字符串的任何方法,可以将DbContext.Database.Log属性设置为委托.
这是我不明白的,代表们只是让我困惑.我该如何使用这个EF6功能?
Ric*_*ard 21
使用委托允许您编写任何带字符串的函数.作为一个非常简单的文件记录,您可以执行以下操作:
context.Database.Log = message => File.AppendText("C:\\mylog.txt").WriteLine(message);
Run Code Online (Sandbox Code Playgroud)
在Web环境中,您可能希望使用Trace来记录此信息:
context.Database.Log = message => Trace.WriteLine(message);
Run Code Online (Sandbox Code Playgroud)
要将日志写入文件,请尝试以下操作:
using (var context = new MyDbContext())
{
var logFile = new StreamWriter("C:\\temp\\log.txt");
context.Database.Log = logFile.Write;
// Execute your queries here
// ....
logFile.Close();
}
Run Code Online (Sandbox Code Playgroud)