我有以下问题--当涉及到log4net时,似乎NHibernate.SQL忽略了记录器配置中的级别,并且总是登录调试。
如果我将记录器名称更改为NHibernate,它可以正常工作,并且只记录以上或等于级别的消息。
这是我的配置:
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="console" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%logger] %-5p %m%n" />
</layout>
</appender>
<logger name="NHibernate.SQL" additivity="false">
<level value="INFO" />
<appender-ref ref="console" />
</logger>
</log4net>通过这种配置,我得到了以下输出:
[NHibernate.SQL] DEBUG Reading high value:select next_hi from hibernate_unique_key with (updlock, rowlock)
[NHibernate.SQL] DEBUG Updating high value:update hibernate_unique_key set next_hi = @p0 where next_hi = @p1;@p0 = 247 [Type: Int64 (0)], @p1 = 246 [Type: Int64 (0)]NHibernate.config
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.connection_string">XXX</property>
<property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property>
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
<property name="show_sql">false</property>
<property name="connection.release_mode">auto</property>
<property name="adonet.batch_size">500</property>
</session-factory>
</hibernate-configuration>发布于 2013-10-17 10:53:24
问题是代码使用了NHibernate事件探查器。调用NHibernateProfiler.Initialize会导致一些记录器被设置为调试级别,特别是NHibernate.SQL。
很抱歉,我没有给出足够的细节-我正在使用内部公司框架,我不知道所有的细节。
https://stackoverflow.com/questions/19111706
复制相似问题