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

그리고 우리는 우리의 헛소리를 발견했습니다. 사이드 노트 : 당신은 log4net을 말하고자했습니다. * 구성 * .XmlConfigurer.Configure(); –

관련 문제