2010-02-03 36 views
2

所以,我们有一个小的ETL应用程序,有更新的一些问题。在nHibernate的下午冲刺中很好的解决了这个问题。但是这个应用依靠log4net将日志记录输出推送到基于命令行开关的几个不同的目的地。一旦我们将nHibernate包装到应用程序中,它就完美无瑕地完成了ETL。但日志功能完全失败。从调试器的角度来看,我们的任何记录器都禁用了所有log4net的级别。nHibernate禁用我的log4net日志

这里的log4net的配置:

<log4net> 
    <appender name="RollingFile" type="log4net.Appender.RollingFileAppender"> 
    <file value="import-" /> 
    <staticLogFileName value="false" /> 
    <appendToFile value="false" /> 
    <rollingStyle value="Date" /> 
    <maxSizeRollBackups value="5" /> 
    <datePattern value="yyyyMMdd-HHmm&quot;.log&quot;" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date %-5level - %message%newline" /> 
    </layout> 
    </appender> 

    <appender name="Console" type="log4net.Appender.ConsoleAppender"> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%-5level : %message%newline" /> 
    </layout> 
    </appender> 

    <appender name="Email" type="log4net.Appender.SmtpAppender"> 
    <to value="[email protected]" /> 
    <from value="[email protected]" /> 
    <subject value="Cte Importer Error" /> 
    <smtpHost value="smtp.example.com" /> 
    <bufferSize value="512" /> 
    <lossy value="false" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%newline%date %-5level : %message%newline%newline%newline" /> 
    </layout> 
    </appender> 

    <root> 
    <level value="ALL" /> 
    </root> 

    <logger name="Console"> 
    <level value="INFO" /> 

    <appender-ref ref="Console" /> 
    </logger> 
    <logger name="File"> 
    <level value="INFO" /> 
    <appender-ref ref="RollingFile" /> 
    </logger> 
    <logger name="DebugConsole"> 
    <level value="DEBUG" /> 
    <appender-ref ref="Console" /> 
    </logger> 
    <logger name="DebugFile"> 
    <level value="DEBUG" /> 
    <appender-ref ref="RollingFile" /> 
    </logger> 
    <logger name="EmailErrors"> 
    <level value="ERROR" /> 
    <appender-ref ref="Email" /> 
    </logger> 
</log4net> 

不知道还有什么其他的代码会有所帮助,但我很高兴地张贴任何从这个程序别人。

回答

2

您正在使用什么版本的NHibernate的?构建比1.0-RC1更早的内部日志记录。在1.0-RC1中,他们改变了这个,所以你必须手动调用log4net.XmlConfigurator.Configure()。这样做是为了让开发人员更好地控制日志记录。

+0

而且我们找到了我们的huckaberry。附注:你的意思是说log4net。 * Config * .XmlConfigurer.Configure(); – 2010-02-04 16:22:30