C# 如何让NHibernate记录文件,而不是控制台?
如果我打开C# 如何让NHibernate记录文件,而不是控制台?,c#,nhibernate,fluent-nhibernate,log4net,C#,Nhibernate,Fluent Nhibernate,Log4net,如果我打开show\u sql,那么NHibernate会记录它的查询,这正是我想要看到的。但是,我的应用程序是一个控制台程序,打开show\u sql会使sql无论如何都出现在控制台中。我不想在控制台中看到它,只想在文件中看到它 注意:我使用log4net来控制日志记录 欢迎在此提供任何有关此问题的建议或指导。我们可以使用log4net及其一些附加程序(即文件附加程序,如RollingFileAppender)来跟踪NHibernate(包括生成的SQL) 详细介绍了如何: ... 然后
show\u sql
,那么NHibernate
会记录它的查询,这正是我想要看到的。但是,我的应用程序是一个控制台程序,打开show\u sql
会使sql无论如何都出现在控制台中。我不想在控制台中看到它,只想在文件中看到它
注意:我使用log4net来控制日志记录
欢迎在此提供任何有关此问题的建议或指导。我们可以使用log4net及其一些附加程序(即文件附加程序,如
RollingFileAppender
)来跟踪NHibernate(包括生成的SQL)
详细介绍了如何:
...
然后声明日志记录器
<logger name="NHibernate">
<level value="WARN" />
<appender-ref ref="RollingFileAppender" />
</logger>
<logger name="NHibernate.SQL">
<level value="DEBUG" />
<appender-ref ref="RollingFileAppender" />
</logger>
注意:这里,我们不使用配置设置false
。我们只是用log4net跟踪
<logger name="NHibernate">
<level value="WARN" />
<appender-ref ref="RollingFileAppender" />
</logger>
<logger name="NHibernate.SQL">
<level value="DEBUG" />
<appender-ref ref="RollingFileAppender" />
</logger>