2010-02-03 71 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