我有一个使用 Fluent NHibernate 的控制台应用程序。我已将其配置为使用 log4net 登录到各个位置。而且效果很好。我可以看到我想要查看的 SQL,并且可以将日志输出发送到各种附加程序。问题是我无法抑制 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 控制它。您只能通过 log4net 使用 log.Debug(logMessage)
控制您正在执行的操作。
关于无论如何,NHibernate 消息都会发送到控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13068736/