2

我有一个使用 Fluent NHibernate 的控制台应用程序。我已将其配置为使用 log4net 登录到各个地方。而且效果很好。我可以看到我想看到的 SQL,并且可以将日志输出发送到各种 appender。问题是我无法抑制 log4net sql 输出到控制台。

额外的控制台输出不受我的 log4net 配置设置的控制。无论我是否关闭所有附加程序,它都会出现。

有什么建议么?

4

3 回答 3

1

您是否在 app.config 的 nhibernate 部分中将此属性设置为true ?

<property name="show_sql">true</property>

如果是这样,请将其设置为 false。

编辑

这是来自 nhibernate 源代码的示例代码:

log.Debug(logMessage);
if (LogToStdout)
{
    Console.Out.WriteLine("NHibernate: " + statement);
}

在上面的代码LogToStdout中是直接链接到show_sql配置属性的。如果您将此设置为 true,则不会阻止它写入控制台。关于您的评论,您无法通过 log4net 进行控制。您只能log.Debug(logMessage)通过 log4net 控制您在做什么。

于 2012-10-25T12:46:17.820 回答
1

要禁用任何日志,请输入以下代码:

< add key="nhibernate-logger" value="" />

进入您的 appSettings 部分。

于 2014-04-30T11:59:29.463 回答
0

NHibernate 日志对我帮助不大,我会在需要时打开它们...我将这些设置添加到我的 app.config 的 log4net 部分:

    <logger name="NHibernate">
      <level value="OFF" />
    </logger>

    <logger name="NHibernate.SQL">
      <level value="OFF" />
    </logger>
于 2014-05-21T17:37:40.380 回答