1

我在 VB.NET 3.5 2010 测试项目中使用 log4net。我一直在绞尽脑汁寻找答案,但我无法生成日志文件。我正在从 IDE 运行。

在装配中:

<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")

然而没有运气。

4

2 回答 2

1

最初的问题是由于构建项目后您的 log4net 文件可能没有被复制到您的输出目录。您需要在部署应用程序时解决此问题。一旦部署,相对路径将不起作用。

只需右键单击 Visual Studio 中的 log4net 配置文件 > 选择属性>从“复制到输出目录”选项中选择“始终复制” 。

始终复制

建设和盈利

于 2018-03-27T20:44:18.883 回答
0

好的,感谢这个链接

它是从 TestResults 目录而不是我预期的位置运行的。这在装配中起到了作用:

<Assembly: log4net.Config.XmlConfigurator(ConfigFile:="..\..\..\WSIB.KCEC.ESB.Test\TempLog4net.exe.log4net", Watch:=True)> 
于 2013-06-20T13:03:30.620 回答