Log4Net - 输出未显示在文件中

时间:2014-02-24 12:08:20

标签: log4net

我有一个Log4Net配置,可以在控制台应用程序中按预期生成输出。

我有完全相同的配置和调用代码(所有这些都在执行流程中尽可能完成),但是在NUnit测试的上下文中。

我知道配置已正确加载。另外,我已经为Log4Net打开了系统诊断程序,两种情况下的调试打印都完全相同。

在控制台应用程序中,文本被写入。否则,该文件为空。

配置代码:

<log4net>
<!--APPENDERS-->    
<!--Endpoint File Appender-->
<appender name="EndpointFileAppender" type="log4net.Appender.RollingFileAppender">
  <file value="C:\Temp\Endpoint.log" />
  <appendToFile value="true" />
  <maximumFileSize value="100KB" />
  <maxSizeRollBackups value="10" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%message" />
  </layout>
</appender>
<!--LOGGERS-->   
<logger name="EndpointLog">
  <level value="ALL" />
  <appender-ref ref="EndpointFileAppender" />
</logger>

调用代码(应用程序启动时的第一件事):

log4net.Config.XmlConfigurator.Configure();
ILog log = LogManager.GetLogger("EndpointLog");
log.Info("Hello World.");

有什么想法吗?感谢

2 个答案:

答案 0 :(得分:0)

是否需要根部分?尝试添加:

<root>
  <level value="All" />
  <appender-ref ref="EndpointFileAppender" />
</root>

答案 1 :(得分:0)

当您在unittest上下文中运行时,您需要将log4net配置文件复制到带有unittest dll的bin文件夹中。您可以通过在log4net config上设置copy tot输出文件夹来完成此操作。