.net - nHibernate ShowSql对实时系统有影响吗?

标签 .net nhibernate logging configuration log4net

我已配置nHibernate使用以下配置代码将其SQL语句输出到Visual Studio输出窗口:

var configuration = Fluently.Configure(cfg)
                .Database(
                    MsSqlConfiguration.MsSql2005
                    .ConnectionString(connectionString)
                    .DefaultSchema("dbo")
                    .UseReflectionOptimizer()
                    .AdoNetBatchSize(32)
                    .ShowSql()

并在我的Web.config中:
<appender name="NHibernateFileLog" type="log4net.Appender.TraceAppender">
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%d{HH:mm:ss.fff} [%t] %-5p %c - %m%n"  />
  </layout>
</appender>

<logger name="NHibernate.SQL" additivity="false">
  <level value="DEBUG"/>
  <appender-ref ref="NHibernateFileLog"/>
</logger>

这会对实时系统产生性能影响吗?实时系统上的日志级别为ERROR,所以我想这意味着记录器将不会打开,但是我的nHibernate配置上的ShowSql是否仍会占用资源?

最佳答案

日志记录会对您的性能产​​生重大影响,但是您应该在生产/测试环境中进行多少测试。使用ShowSql()时,它将把SQL发送到您的记录器,记录器将对其进行过滤。通常,您将在配置中配置ShowSql标志。在这种情况下,您可以在生产环境中将其设置为false:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
    <session-factory>
      <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
        <property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
        <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
        <property name="connection.connection_string">
Server=(local);Database=NHibernateFAQ;Integrated Security=SSPI;
        </property>
<property name="show_sql">false</property>
    </session-factory>
</hibernate-configuration>

configure-log4net-for-use-with-nhibernate

关于.net - nHibernate ShowSql对实时系统有影响吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9375286/

相关文章:

c# - NHibernate 与 Windows 应用程序

c# - 限制引用实体的 NHibernate 查询

c# - NLog ${identity} 和 ${windows-identity} 保存为 "notauth"

Perl Log::Dispatch:在运行中更改日志记录位置?

c# - 从谷歌翻译中抓取 HTML

c# - 如果有人没有运行应用程序所需的 .NET 框架,则显示自定义弹出窗口

c# - 流利的 Nhibernate : Configure Database in XML

java - 如何在 Spring 中记录 Web 请求和响应?

.net - .Net 中的 Google V8 Javascript 引擎?

c# - 按正确顺序获取数据集子行