簡體   English   中英

MS測試單元測試log4net

[英]MS Test Unit Testing log4net

我想對我的記錄器(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>

配置部分與主項目中的config完全相同,其中logger類按預期工作。 我已經閱讀了許多線程建議,例如運行設置和自定義配置文件,但是在我的情況下這些都不起作用。 有什么建議嗎?

問題出在appender-ref中,它應該指向一個appender,而不是一個logger:

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

應該:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM