无论如何,NHibernate 消息都会发送到控制台

标签 nhibernate fluent-nhibernate log4net

我有一个使用 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/

相关文章:

c# - Fluent NHibernate 解决方案结构 - 如何在 Web 应用程序/控制台应用程序的后端引用一次 DLL

c# - 需要nHibernate指南来做CRUD

c# - 查看加载时间超过 3 分钟

Nhibernate Throws找到对集合的共享引用

c# - 为什么 log4net 线程卡在等待状态?

log4net - 在解决方案中的多个程序集中使用相同的 Log4net 记录器的最佳模式是什么?

nhibernate - 工作单元问题 - Nhibernate(隔离级别以及 UoW 中还有什么)

fluent-nhibernate - Fluent NHibernate 主键之一也是外键 - OutOfRangeException

asp.net - Multi-Tenancy 或非 Multi-Tenancy

.net - Linux 的 DebugView 替代方案(单声道相关)