我正在为 REST 端点进行集成测试,该端点连接到硬件设备上的供应商 Rest Api。我的软件必须定期在物理设备上进行测试。我创建了一个测试项目(VSTest VS 2015),我想将日志记录添加到我的测试工具中。我意识到 log4net 上有大量文档,但我仍然无法使其工作。我的目标是登录到控制台和文件。供应商需要一个日志文件来验证我的测试是否完成。
首先,我初始化 log4net 以读取独立文件。
using log4net.Config;
using log4net;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Diagnostics;
namespace MyProgram
{
[TestClass]
public class AssemblyInitializer
{
private static ILog log = null;
[AssemblyInitialize]
public static void Configure(TestContext Context)
{
Debug.WriteLine("Starting log4net setup and configuration");
XmlConfigurator.Configure(new FileInfo("log4net.properties"));
log = LogManager.GetLogger(typeof(AssemblyInitializer));
log.Debug("log4net initialized for Integration Test");
Debug.WriteLine("Completed log4net setup and configuration");
}
}
}
我的 log4net.properties 文件:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionpattern value="%date [%thread] %-5level %logger{1} - %message%newline"/>
</layout>
</appender>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="IntegrationTests.log" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<root>
<level value="DEBUG">
<appender-ref ref="ConsoleAppender"/>
<appender-ref ref="FileAppender"/>
</level>
</root>
</log4net>
</configuration>
我认为测试资源管理器不会读取 Assembly.Info 文件,但我提供了一个参考以防万一。
[assembly: log4net.Config.XmlConfigurator(Watch = false)]
我已经尝试了几乎所有我能想到的东西。我没主意了。任何帮助,将不胜感激。