0
我在VB.NET 3.5 2010測試項目中使用log4net。我一直在絞盡腦汁尋找答案,但我無法生成一個日誌文件。我正在從IDE運行。log4net無法登錄VB.NET測試項目
在裝配:
<Assembly: log4net.Config.XmlConfigurator(ConfigFile:="MyApp.Test.dll.log4net", Watch:=True)>
在文件MyApp.Test.dll.log4net(我本來不具有配置元素包裹,但也不能工作)。該文件具有屬性 '始終複製':
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
<log4net>
<appender name="FA" type="log4net.Appender.FileAppender">
<file value="c:\example.log" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level %thread %logger - %message%newline" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="FA" />
</root>
</log4net>
</configuration>
在UnitTest.vb類變量
Private Shared ReadOnly log As ILog = LogManager.GetLogger(GetType(UnitTest))
在UnitTest.vb方法
log.Fatal("LogTest() runnng test with log4net")
但是沒有運氣。
仍然黑客攻擊。我能夠在控制檯項目中完成這項工作。爲什麼不從測試項目運行測試? –
作爲測試,請嘗試在AssemblyInfo文件中硬編碼Configfile的位置。大多數測試環境使用影子複製,並且您的dll被複制到另一個文件夾並從該文件夾執行,因此找不到未被複制的MyApp.Test.dll.log4net文件。 (如果這是問題,不確定適當的解決方案是什麼)。 – sgmoore
@sgmoore。謝謝,你的描述聽起來像是問題。我發現了一個可以在下面使用我驚訝地發現log4net配置文件沒有包含在'shadow copy'中,因爲'always copy'設置。 –