【发布时间】:2021-03-09 15:39:05
【问题描述】:
是我做错了什么还是 Serilog 的性能很差?
新建一个 Asp.Net Core 5.0 webapi 项目,添加对 Serilog.AspNetCore nuget 包的引用和如下配置代码。 Serilogs 每个请求增加 15 毫秒!在我的发布版本中,我的处理时间从 5 毫秒跳到了 20 毫秒。
程序.cs
public class Program
{
public static void Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.Enrich.FromLogContext()
.WriteTo.Console()
.CreateLogger();
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseSerilog()
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
【问题讨论】:
-
我同意接受的答案,但想补充一点,您的基准测试存在缺陷。 Web 服务器在内存中运行所有内容、不连接到数据库并且不发送任何 HTTP 请求的基准测试的值接近于零。这甚至不是一个比较。这就像什么都没有比较。
-
您有没有想过 op 发布的场景小到可以放入 stackoverflow 页面?现实世界的场景太大了,读者无法尝试复制自己。
标签: asp.net-core serilog