【问题标题】:Entity Framework 6.1.3 Log SQL queries only if exception occurred On DBContext.SaveChanges()实体框架 6.1.3 仅在 DBContext.SaveChanges() 上发生异常时记录 SQL 查询
【发布时间】:2020-01-14 06:14:56
【问题描述】:

我正在使用实体框架 6.1.3。只有在 catch 块中发生异常时,我才想用参数记录 SQL 查询。有没有办法以这种方式记录查询?

try
{
   base.SaveChangesAsync();
}
catch(Exception ex)
{
  // I want to log SQL queries here.
}

【问题讨论】:

  • 如果输入异常块,为什么不让 .Log 写入内存流,然后将该流转储到日志文件?
  • 是的,实现相同。谢谢!

标签: c# .net sql-server entity-framework


【解决方案1】:

您可以使用以下任何日志库,如下所述here

  1. Log4net(登录文本文件+登录SQL数据库)

  2. Nlog(登录文本文件+登录SQL数据库)

  3. Serilog(登录文本文件+登录SQL数据库)

  4. Elmah(登录 SQL 数据库)

或者,您可以创建一个过程来手动跟踪并将日志/问题插入数据库中,如下所示。

try    
 { 
   //Your code here.
 }    
 catch (Exception ex)    
 {        
   ExceptionLogging.SendExcepToDB(ex);    
   Label1.Text = "Some Technical Error occurred,Please visit after some time";     
 }  

您可以从here获取详细信息。

【讨论】:

  • @MaheshBhosale 欢迎您,我已经说过有多种方法可以从应用程序和数据库端记录异常。
【解决方案2】:

将日志记录到内存流中,如果发生异常,则将日志添加到文件中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-09
    • 2013-09-25
    • 2016-12-20
    相关资源
    最近更新 更多