我以编程方式从配置文件创建log4net日志:
var properties = new NameValueCollection
{
{"configType", "FILE"},
{"configFile", @"c:/log4net.config"}
};
Common.Logging.LogManager.Adapter = new Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter(properties);
这是我的log4net.config
(为了简单起见就像鸽子建议的那样编辑):
<log4net>
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<file value="c:/log.log" />
<appendToFile value="true" />
<maximumFileSize value="100KB" />
<maxSizeRollBackups value="5" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
<root>
<level value="All" />
<appender-ref ref="RollingFile" />
</root>
<logger name="NHibernate">
<level value="All" />
<appender-ref ref="RollingFile" />
</logger>
</log4net>
我让Spring.NET成功登录到该文件,但不是NHibernate。 Nhibernate的配置非常简单:
protected override void PostProcessConfiguration(Configuration config)
{
base.PostProcessConfiguration(config);
var msSqlCfg = MsSqlConfiguration.MsSql2000.ConnectionString(ConnectionString)
.ShowSql();
Fluently.Configure(config).Database(msSqlCfg)
.Mappings(m => m.FluentMappings.Add<EmployeeMap>())
// Other mappings
.BuildSessionFactory();
}
我应该修复什么才能让Nhibernate日志正常工作?
答案 0 :(得分:2)
如果您生成统计信息,是否会记录?
Configuration.ExposeConfiguration(c =>
c.SetProperty("generate_statistics", "true"));
要缩小范围,你可以从记录器中删除可加性标记和上传,只记录一个开始,即完全像这样
<logger name="NHibernate">
<level value="ALL" />
</logger>