我正在使用 vs 2017,写一个netcoreapp2.0库,并使用 UnitTest 项目对其进行测试(XUnit 和 NUnit 给出相同的结果)。
我注意到除非我强行处置我的Serilog记录器,只有第一行会出现在Seq.
这是我的两堂课。图书馆一:
public class Class1
{
public static Logger _log;
public Class1(Logger log)
{
_log = log;
_log.Verbose("Class 1 constructor fineshed");
}
public void LogMessage(string s)
{
_log.Debug("Got message: {Message}", s);
}
}
和单元测试:
public class UnitTest1
{
public static Logger _log = new LoggerConfiguration()
.WriteTo.Seq("http://localhost:5341", Serilog.Events.LogEventLevel.Verbose)
.MinimumLevel.Verbose()
.CreateLogger();
[Fact]
public void Test1()
{
_log.Debug("Test 1 logging");
var c = new Class1(_log);
c.LogMessage("Logging from test");
_log.Information("Test fineshed");
_log.Dispose(); // Without this, only "Test 1 logging" is logged.
}
}
引用的程序集(来自单元测试项目):
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0-preview-20170628-02" />
<PackageReference Include="serilog" Version="2.5.0" />
<PackageReference Include="serilog.sinks.seq" Version="3.3.3" />
<PackageReference Include="xunit" Version="2.2.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
有什么建议么?
(这里是一个演示项目的链接,使用 vs 2017 打开恢复包并运行测试:演示项目 )
看来您遇到了同样的问题如这篇博文中所述。缺点是您有责任处理记录器,记录器会将其内容物冲入适当的水槽。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)