kas*_*sey 5 .net nhibernate configuration logging log4net
我已使用以下配置代码将nHibernate配置为将其SQL语句输出到Visual Studio输出窗口:
var configuration = Fluently.Configure(cfg)
.Database(
MsSqlConfiguration.MsSql2005
.ConnectionString(connectionString)
.DefaultSchema("dbo")
.UseReflectionOptimizer()
.AdoNetBatchSize(32)
.ShowSql()
Run Code Online (Sandbox Code Playgroud)
在我的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>
Run Code Online (Sandbox Code Playgroud)
这会对现场系统产生任何性能影响吗?实时系统上的日志级别是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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1416 次 |
| 最近记录: |