Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何让NHibernate记录文件,而不是控制台?_C#_Nhibernate_Fluent Nhibernate_Log4net - Fatal编程技术网

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>