使用log4net清空NHibernate日志文件

使用log4net清空NHibernate日志文件,nhibernate,fluent-nhibernate,log4net,Nhibernate,Fluent Nhibernate,Log4net,我正在尝试使用Fluent NHibernate和log4net在我的应用程序上启用日志记录。我已经尝试过所描述的事情,并且。正在创建日志文件,但没有写入任何内容。此应用程序和其他应用程序的其他日志文件都正常工作,因此我假设问题出在我的配置上 以下是我为实现这一目标而编写的代码: 配置文件中包含与此应用程序相关的所有log4net设置的部分: <appender name="RollingFileAppenderNHibernate" type="log4net.Appen

我正在尝试使用Fluent NHibernate和log4net在我的应用程序上启用日志记录。我已经尝试过所描述的事情,并且。正在创建日志文件,但没有写入任何内容。此应用程序和其他应用程序的其他日志文件都正常工作,因此我假设问题出在我的配置上

以下是我为实现这一目标而编写的代码:

配置文件中包含与此应用程序相关的所有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>

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

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

  • 追加器开始标记的末尾没有“>”
  • 布局结束标记的末尾有一个,而不是“>”

  • 当然,这可能是由于复制并粘贴到本文中造成的。

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

    这真的是您所有的配置吗?如果没有和元素,它肯定无法工作。不,这不是我的全部配置,但它是与此应用程序相关的部分。我已经更新了这个问题,使这个事实更加清楚。谢谢,这些都是复制和粘贴错误。我现在已经纠正了它们。
    public static ISessionFactory CreateSessionFactory()
    {
        return Fluently.Configure()
            .Database(OracleClientConfiguration.Oracle10
            .ConnectionString((conn =>
                conn.FromConnectionStringWithKey("APPDB")))
            .ShowSql())
            .Mappings(m =>
                m.FluentMappings.AddFromAssemblyOf<{ObjectName}>())
            .BuildSessionFactory();
    }
    
    log4net.Config.XmlConfigurator.Configure();