使用UNnit运行log4net的情况,无法创建日志文件。没有错误提出

时间:2013-02-25 14:38:26

标签: .net nunit log4net

最近测试了一个使用log4net(.NET)的日志项目,它是一个控制台项目。如果在VS中运行项目,则可以创建日志文件,但如果在NUnit中运行.exe文件,则无法创建日志文件。日志内容只需在UNnit GUI中打印出来。没有错误提高。 为什么?我在App.config中配置了log4net。


我需要使用Nunit来测试这个案例。


我用Google搜索,没有回答。


我在App.config中的配置文件如下:

<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>

<log4net>
<root>
  <level value="WARN">
  </level>     
  <appender-ref ref="SystemLogFileAppender" />
</root>

<appender name="SystemLogFileAppender" type="log4net.Appender.RollingFileAppender">
  <param name="File" value="d:\" type="" />
  <param name="AppendToFile" value="true" />
  <param name="RollingStyle" value="Date" />
  <param name="DatePattern" value="yyyyMMdd_SYS.TXT" />
  <param name="StaticLogFileName" value="false" />
  <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />

  <Encoding value="UTF-8" />
  <layout type="Log.LogLayout">
    <param name="ConversionPattern" value=" Level: %property{Level}%n Message: %property   {Message}%n Exception: %property{Exception}%n CreateDate: %property{CreateDate}%n%n" />
  </layout>
  <filter type="Log.SystemLogFilter">
  </filter>
  </appender>

我在以下代码中添加了我的项目的AssemblyInfo.cs,而不是工作:

[assembly: log4net.Config.XmlConfigurator()]

然后,我将其更改为以下内容,不再重复:

[assembly: log4net.Config.XmlConfigurator(ConfigFile=@"D:\LogTest\FrameworkTest.exe.config",Watch=true)]

2 个答案:

答案 0 :(得分:1)

没有错误提升:如果log4net无法登录或找不到日志信息或者未在dll中配置log4net.Config.XmlConfigurator,则log4net将不会记录并且不会引发错误。是因为日志记录不应该影响你的程序。

如果没有写入日志,则可能存在配置问题。必须在NUnit的运行目录中配置日志记录。您应该将log4net.config与二进制文件一起部署,并将该属性添加到测试项目中(用于登录测试项目):

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

答案 1 :(得分:0)

我将NUnit更新为版本2.6.2,然后工作。使用配置:

[assembly: log4net.Config.XmlConfigurator()]