首页 > 解决方案 > 防止 Firebird 在 Visual Studio 调试输出窗口中打印查询

问题描述

我们在项目中新采用了 Firebird,通过 Entity Framework 使用它。我现在注意到 Firebird 将每个查询打印到 Visual Studio 的调试输出窗口。这是一个简化的示例:

FirebirdSql.Data.FirebirdClient Information: 0 : Command:
SELECT 
"B"."FOO" AS "FOO" 
FROM "BAR" AS "B"
WHERE [...]
Parameters:
Name:p__linq__0 Type:TimeStamp  Used Value:19.03.2020 07:57:59
Name:p__linq__1 Type:Guid   Used Value:00000000-0000-0000-0000-000000000000

使用旧的 DBMS,我们没有这样的输出,所以我不认为某些通用实体框架功能在这里起作用。我知道DbContext.Database.Log,但我仔细检查了我们没有在我们的代码库中使用它。

我确认不是我们的日志框架 (log4net) 将某些内容重定向到 VS 调试输出。我们的 app.config 也不包含任何看起来可疑的内容。最后但同样重要的是,互联网搜索并没有产生任何有用的东西。

所以我在这里真的很茫然。你知道这个输出是从哪里来的,我怎么能禁用它?

我们使用 Visual Studio 2019 和 Firebird 3。

标签: visual-studiofirebirdfirebird-.net-provider

解决方案


打开您的app.config并添加以下代码:

<system.diagnostics>
    <sources>
      <source name="FirebirdSql.Data.FirebirdClient">
        <listeners>
          <clear />
        </listeners>
      </source>
    </sources>
  </system.diagnostics>

现在没有配置诊断侦听器并且您没有得到任何输出。


推荐阅读