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