2009-11-04 78 views
5

我嘗試在我的VS單元測試運行時在日誌文件(Log.Trace/Log.Debug)中記錄一些條目。我還通過類的DeploymentItem屬性將文件NLog.config複製到了目錄中。我的日誌文件還沒有創建。對於我們如何才能在文件中記錄與正常Web應用程序相同的文件有幫助。NLog與VS 2008單元測試

回答

11

我剛剛找到了解決這個問題: 添加App.config文件到YOUT單元測試項目具有以下內容:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
    <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"> 

    <targets> 
     <target name="debugLog" xsi:type="Console" /> 
    </targets> 

    <rules> 
     <logger name="*" minlevel="Debug" writeTo="debugLog"></logger> 
    </rules> 

    </nlog> 

</configuration> 

你可以把你想與NLOG任何配置。配置文件。

0

不幸的是,這是當時唯一的XML解決方案。不過這不僅僅是關於單元測試。 NLog.config不適用於任何控制檯應用程序。

不知道它是通過設計還是隻是疏忽。無論如何,我不會說移動NLog.config到App.config部分是任何方式令人滿意的=/

也許值得注意的是,有可能直接從代碼配置nlog,在某些情況下可能會有所幫助。 也可以很高興地找到nlog調試選項,這將記錄整個處理配置文件,註冊目標等的過程...

要打開它,只需將internalLogFile和internalLogLevel屬性添加到nlog元素即可:

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" internalLogFile="C:/logs/nlog.txt" internalLogLevel="Debug"> 

或從代碼:

InternalLogger.LogFile = @"c:\logs\nlog.txt"; 

    InternalLogger.LogLevel = LogLevel.Trace;