2015-09-13 69 views
0

我想單元測試如果我的記錄器(這是一個log4net的包裝)工作正常。我遇到的問題與此,因爲我得到了以下錯誤時,這條線在單元測試項目運行:MS測試單元測試log4net

log4net.Config.XmlConfigurator.Configure(); 

在輸出窗口中的錯誤:

log4net:ERROR XmlHierarchyConfigurator: No appender named [TraceLogger] could be found. 
log4net:ERROR Appender named [TraceLogger] not found. 

下面是完整的在的app.config我的單元測試項目:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
<configSections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net" /> 
</configSections> 
<log4net> 
    <appender name="DatabaseCallAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value=".\\App_Data\\Logs" /> 
    <datePattern value=".yyyy-MM-dd'-Database.log'" /> 
    <appendToFile value="true" /> 
    <maximumFileSize value="256KB" /> 
    <maxSizeRollBackups value="2" /> 
    <rollingStyle value="Date" /> 
    <staticLogFileName value="false" /> 
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%level %thread %logger - %message%newline" /> 
    </layout> 
</appender> 
<appender name="TracingAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value=".\\App_Data\\Logs" /> 
    <datePattern value=".yyyy-MM-dd'-Tracing.log'" /> 
    <appendToFile value="true" /> 
    <maximumFileSize value="256KB" /> 
    <maxSizeRollBackups value="2" /> 
    <rollingStyle value="Date" /> 
    <staticLogFileName value="false" /> 
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%level %thread %logger - %message%newline" /> 
    </layout> 
</appender> 
<logger name="DatabaseCallsLogger"> 
    <level value="DEBUG" /> 
    <appender-ref ref="DatabaseCallAppender" /> 
</logger> 
<logger name="TraceLogger"> 
    <level value="DEBUG" /> 
    <appender-ref ref="TracingAppender" /> 
</logger> 
<root> 
    <level value="DEBUG" /> 
    <appender-ref ref="TraceLogger" /> 
</root> 
</log4net> 

配置節是EXA與我的主項目中的配置一樣,記錄器類按預期工作。我已經閱讀了一些建議認爲像runsettings和自定義配置文件的線程,但是沒有一個適用於我的情況。建議?

+4

例外告訴你什麼是錯的 - 在附加器您的根日誌記錄元素中的引用應該是TracingAppender,而不是TraceLogger。 –

+0

工作,但這並不能解釋爲什麼這個完全相同的配置在另一個項目中工作。這並不重要,我會接受你的答案。 – hbulens

回答

1

的問題是在你的appender-REF,這應該指向一個appender,而不是記錄:

<root> 
    <level value="DEBUG" /> 
    <appender-ref ref="TraceLogger" /> 
</root> 

應該是:

<root> 
    <level value="DEBUG" /> 
    <appender-ref ref="TracingAppender" /> 
</root>