[NLog]With Visual Studio Unit Test Project

[NLog]With Visual Studio Unit Test Project

參考:

NLog not working with MSTest - any suggestions?

NLog does not show any output!

 

問題描述:如一般專案中,我們加入了NLog.config於應用程式根目錄中,且永遠複製至輸出目錄,但並沒有如我們預期般寫出日誌。

根本問題:執行測試時沒有讀取到NLog.config

解法:

(1) 測試程式增加一行, 將Nlog.config load到應用程序中.

(2) 將NLog.config的內容加到App.config


    <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog"/>    
  </configSections>
  <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">    
    <variable name="logFilePath" value="D:\WorkArea\TEST\bin\Debug\logs\${shortdate}\Main.log"/>
    <targets async="true">
      <target name="fileAsInfo" xsi:type="File" fileName="${logFilePath}" layout="${longdate} ${level:upperCase=true}: ${message} ${exception:format=ToString}"/>
    </targets>
    <rules>
      <logger name="*" minlevel="Trace" writeTo="fileAsInfo"/>
    </rules>
  </nlog>

 

無效解法:

將NLog.config存入 %Program Files%\Microsoft Visual Studio 9.0\Common7\IDE (即MSTest.exe的路徑) , 因為也不可能用這種方法, 故未去探究原因.