我有一个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.");
有什么想法吗?感谢
答案 0 :(得分:0)
是否需要根部分?尝试添加:
<root>
<level value="All" />
<appender-ref ref="EndpointFileAppender" />
</root>
答案 1 :(得分:0)
当您在unittest上下文中运行时,您需要将log4net配置文件复制到带有unittest dll的bin文件夹中。您可以通过在log4net config上设置copy tot输出文件夹来完成此操作。