与log4net的空的NHibernate日志文件

时间:2009-11-02 16:31:37

标签: nhibernate fluent-nhibernate log4net

我正在尝试使用Fluent NHibernate和log4net在我的应用程序上启用日志记录。我尝试过herehereherehere所描述的内容。日志文件正在创建,但没有任何内容写入它。这个和其他应用程序的其他日志文件都可以正常工作,所以我假设问题与我的配置有关。

以下是我为实现这项工作而制定的代码:

配置文件中包含与此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();

我尝试了这些设置的几种不同变体,但结果总是相同的,一个空的日志文件。

2 个答案:

答案 0 :(得分:0)

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

  1. 没有'&gt;'在appender开标签的末尾。
  2. 有&amp; gt;在布局结束标记的末尾而不是'&gt;'。
  3. 当然,这些可能只是复制并粘贴到这篇文章中引起的。

答案 1 :(得分:0)

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