gpt4 book ai didi

c# - 使用 Serilog 静态记录器将日志输出到 Xunit

转载 作者:行者123 更新时间:2023-12-03 18:31:34 26 4
gpt4 key购买 nike

我在我的项目中使用 serilog 和静态记录器方法 - 能够在我的类库上调用 Log.X 而不是到处注入(inject)记录器类,这很好也很容易。

但是,当涉及到单元/集成测试时,如果测试失败,它将是 巨大的有益于查看类库中的错误日志(对于集成测试更是如此)。

因为我没有将 ILogger 注入(inject)到我的类中(由于使用静态记录器),所以我无法创建将输出写入测试日志的模拟测试记录器。

有没有人设法使用 Serilog 全局(静态)记录器将消息输出到 XUnit?

最佳答案

Serilog.Sinks.XUnit nuget 包可以很容易地实现这一点。在您的项目中引用 nuget。然后您可以在测试中使用静态记录器:

using Serilog;
using Xunit;
using Xunit.Abstractions;

namespace XunitToSerilog
{
public class SampleTest
{
public SampleTest(ITestOutputHelper output)
{
Log.Logger = new LoggerConfiguration()
// add the xunit test output sink to the serilog logger
// https://github.com/trbenning/serilog-sinks-xunit#serilog-sinks-xunit
.WriteTo.TestOutput(output)
.CreateLogger();
}

[Fact]
public void Test1()
{
Log.Information("goes to test output");
}
}
}

关于c# - 使用 Serilog 静态记录器将日志输出到 Xunit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58913741/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com