当我这样做
LoggerFactory
.Create(builder => builder.AddTraceSource(nameof(TestName)).AddConsole())
.CreateLogger(nameof(TestName))
.LogError("oh no");
我希望在dotnet test --verbosity detailed
输出中看到“哦不”。但事实并非如此。如何获取ILogger,使其输出在测试运行输出中可见?
我正在使用Microsoft.Extensions.Logging 3.0.0-preview3.19153.1和.NET Core SDK 2.1.500。
答案 0 :(得分:0)
发生这种情况是因为控制台日志记录是在后台线程中执行的。因此,要“修复”此问题,请尝试使用dispose services:
((IDisposable) services)?.Dispose();
或至少give it some time可以处理-睡眠一秒钟:
LoggerFactory
.Create(builder => builder.AddTraceSource(nameof(TestName)).AddConsole())
.CreateLogger(nameof(TestName))
.LogError("oh no");
System.Threading.Thread.Sleep(1000);