如何在 Visual Studio 单元测试中将 Serilog 输出写入控制台?
How to write Serilog output to console in Visual Studio Unit Tests?
我正在尝试编写输出到日志的单元测试 - Serilog。
但是当我在 Visual Studio (Test Explorer) 中调试它们时,我无法在控制台中看到 Serilog 输出。
有什么想法吗?
public abstract class AbstractTest
{
static AbstractTest()
{
var loggers = new LoggerConfiguration()
.MinimumLevel.Verbose()
.Enrich.FromLogContext();
loggers.WriteTo.Logger(logger => logger
.WriteTo.Console(restrictedToMinimumLevel: LogEventLevel.Verbose));
Log.Logger = loggers.CreateLogger();
Log.Logger.Information("Logger is initialized");
}
}
[TestClass]
public class DemoTest : AbstractTest
{
private static ILogger log = Log.ForContext(typeof(DemoTest));
[TestMethod]
public void DemoTst()
{
log.Debug("test");
}
}
控制台中既没有显示 'Logger is initialized' 也没有显示 'test'。
我正在使用 'Serilog.AspNetCore' 和 'Serilog.Sinks.Console'
好的,我找到了解决方案。
您必须将包 Serilog.Sinks.Debug
(here) 包含到您的项目中并使用 WriteTo.Debug()
初始化它。
我正在尝试编写输出到日志的单元测试 - Serilog。 但是当我在 Visual Studio (Test Explorer) 中调试它们时,我无法在控制台中看到 Serilog 输出。
有什么想法吗?
public abstract class AbstractTest
{
static AbstractTest()
{
var loggers = new LoggerConfiguration()
.MinimumLevel.Verbose()
.Enrich.FromLogContext();
loggers.WriteTo.Logger(logger => logger
.WriteTo.Console(restrictedToMinimumLevel: LogEventLevel.Verbose));
Log.Logger = loggers.CreateLogger();
Log.Logger.Information("Logger is initialized");
}
}
[TestClass]
public class DemoTest : AbstractTest
{
private static ILogger log = Log.ForContext(typeof(DemoTest));
[TestMethod]
public void DemoTst()
{
log.Debug("test");
}
}
控制台中既没有显示 'Logger is initialized' 也没有显示 'test'。
我正在使用 'Serilog.AspNetCore' 和 'Serilog.Sinks.Console'
好的,我找到了解决方案。
您必须将包 Serilog.Sinks.Debug
(here) 包含到您的项目中并使用 WriteTo.Debug()
初始化它。