我有一个使用 Fluent NHibernate 的控制台应用程序。我已将其配置为使用 log4net 登录到各个地方。而且效果很好。我可以看到我想看到的 SQL,并且可以将日志输出发送到各种 appender。问题是我无法抑制 log4net sql 输出到控制台。
额外的控制台输出不受我的 log4net 配置设置的控制。无论我是否关闭所有附加程序,它都会出现。
有什么建议么?
我有一个使用 Fluent NHibernate 的控制台应用程序。我已将其配置为使用 log4net 登录到各个地方。而且效果很好。我可以看到我想看到的 SQL,并且可以将日志输出发送到各种 appender。问题是我无法抑制 log4net sql 输出到控制台。
额外的控制台输出不受我的 log4net 配置设置的控制。无论我是否关闭所有附加程序,它都会出现。
有什么建议么?
您是否在 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 控制您在做什么。
要禁用任何日志,请输入以下代码:
< add key="nhibernate-logger" value="" />
进入您的 appSettings 部分。
NHibernate 日志对我帮助不大,我会在需要时打开它们...我将这些设置添加到我的 app.config 的 log4net 部分:
<logger name="NHibernate">
<level value="OFF" />
</logger>
<logger name="NHibernate.SQL">
<level value="OFF" />
</logger>