2009-11-02 106 views
3

我试图让我的应用程序使用流利NHibernate和log4net启用日志记录。我尝试过描述here,here,herehere。日志文件正在创建,但没有写入它。这个和其他应用程序的其他日志文件都缝合工作正常,所以我假设这个问题是我的配置。Log4net的空NHibernate日志文件

这里是我已经到位,以试图得到这个工作的代码:

配置文件中的我所有的相关与这个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(); 
} 

在Application_Start()我的Global.asax.cs的:

log4net.Config.XmlConfigurator.Configure(); 

我已经尝试过几种不同的设置,但结果总是相同的,一个空的日志文件。

+0

这真的是你所有的配置?没有元素,它肯定无法工作。 – 2009-11-03 08:59:58

+0

不,这不是我的全部配置,但它是与此APP相关的部分。我已经更新了这个问题,使这个事实更清楚一点。 – Hamman359 2009-11-03 15:05:43

回答

0

事实证明,这个问题与我们在log4net中使用框架代码处理日志过于复杂和复杂的方式有关。一旦我找出正确的箍筋来跳过日志记录开始正确工作。

0

如果XML是你的配置的真实repesentation,我可以看到两个潜在的问题:

  1. 没有“>”在附加器打开标签的结束。
  2. 还有& gt;在布局结束标记而不是'>'结束时。

当然,这些可能只是由复制和粘贴到这篇文章引起的。

+0

谢谢,那些复制和粘贴错误。我现在纠正了它们。 – Hamman359 2009-11-03 14:57:02