我正在尝试使用Fluent NHibernate和log4net在我的应用程序上启用日志记录。我尝试过here,here,here和here所描述的内容。日志文件正在创建,但没有任何内容写入它。这个和其他应用程序的其他日志文件都可以正常工作,所以我假设问题与我的配置有关。
以下是我为实现这项工作而制定的代码:
配置文件中包含与此APP相关的所有log4net设置的部分:
<appender name="RollingFileAppenderNHibernate"
type="log4net.Appender.RollingFileAppender">
<file value="C:\temp\RollingLogFileNHibernate" />
<appendToFile value="true" />
<ImmediateFlush value="true" />
<rollingStyle value="Date" />
<DatePattern value="yyyyMMdd.\l\o\g" />
<StaticLogFileName value="false" />
<MaxSizeRollBackups value="1" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<logger name="NHibernate.SQL"
additivity="false">
<level value="ALL"/>
<appender-ref ref="RollingFileAppenderNHibernate"/>
</logger>
我的NHibernate配置:
public static ISessionFactory CreateSessionFactory()
{
return Fluently.Configure()
.Database(OracleClientConfiguration.Oracle10
.ConnectionString((conn =>
conn.FromConnectionStringWithKey("APPDB")))
.ShowSql())
.Mappings(m =>
m.FluentMappings.AddFromAssemblyOf<{ObjectName}>())
.BuildSessionFactory();
}
在Global.asax.cs的Application_Start()中:
log4net.Config.XmlConfigurator.Configure();
我尝试了这些设置的几种不同变体,但结果总是相同的,一个空的日志文件。
答案 0 :(得分:0)
如果XML是您的配置的真实重复,我可以看到两个潜在的问题:
当然,这些可能只是复制并粘贴到这篇文章中引起的。
答案 1 :(得分:0)
事实证明,问题与过于复杂和复杂的方式有关,在我们围绕log4net的框架代码中处理日志记录。一旦我找到正确的箍跳过日志开始正常工作。