在 ASP.NET Core 6.0 中使用 Serilog
2021/11/17 22:11:59
本文主要是介绍在 ASP.NET Core 6.0 中使用 Serilog,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
本文基于Serilog.AspNetCore 4.1.0 版本。 对于之后的版本,Serilog.AspNetCore可能会有针对.NET6更新更加方便读者调用,请读者悉知
疑问
Serilog 在 ASP.NET Core 5 中用的好好的,原项目升级到6也没有问题,可是为什么新建ASP.NET Core 6.0项目,使用不了"UseSerilog()"呢?
解释
因为6使用了"new minimal hosting model",5上面"UseSerilog()"
是扩展在"IHostBuilder"
上面的,而6上使用的是"WebApplicationBuilder"
,所以"UseSerilog()"
自然就无法使用了,但是"builder.Host"
上是"IHostBuilder"
类型,可以把"UseSerilog()"
用在"builder.Host"
上,不建议使用"builder.WebHost"
哦。
正确示例
.csproj 文件
<ItemGroup> <PackageReference Include="Serilog" Version="2.10.0" /> <PackageReference Include="Serilog.AspNetCore" Version="4.1.0" /> <PackageReference Include="Serilog.Enrichers.Thread" Version="3.1.0" /> <PackageReference Include="Serilog.Sinks.Console" Version="4.0.0" /> <PackageReference Include="Serilog.Sinks.File" Version="5.0.0" /> </ItemGroup>
Program.cs
using Serilog; const string OUTPUT_TEMPLATE = "{Timestamp:yyyy-MM-dd HH:mm:ss.fff} <{ThreadId}> [{Level:u3}] {Message:lj}{NewLine}{Exception}"; Log.Logger = new LoggerConfiguration() .MinimumLevel.Debug() .Enrich.WithThreadId() .Enrich.FromLogContext() .WriteTo.Console(outputTemplate: OUTPUT_TEMPLATE) .WriteTo.File("logs/app.txt" , rollingInterval: RollingInterval.Day , outputTemplate: OUTPUT_TEMPLATE) .CreateLogger(); try { Log.Information("Starting web host"); var builder = WebApplication .CreateBuilder(args); builder.Host.UseSerilog(Log.Logger, dispose: true); // Add services to the container. builder.Services.AddControllers(); var app = builder.Build(); // Configure the HTTP request pipeline. app.UseAuthorization(); app.UseSerilogRequestLogging(); app.MapControllers(); app.Run(); } catch (Exception ex) { Log.Fatal(ex, "Host terminated unexpectedly"); } finally { Log.CloseAndFlush(); }
参考
Migrate from ASP.NET Core 5.0 to 6.0
Setting up Serilog in .NET 6
声明
本文采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可,发表在CSDN和博客园,欢迎读者转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接!请读者/爬虫们尊重版权
这篇关于在 ASP.NET Core 6.0 中使用 Serilog的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具
- 2024-01-24.NET集成IdGenerator生成分布式全局唯一ID
- 2024-01-23用CI/CD工具Vela部署Elasticsearch + C# 如何使用
- 2024-01-23.NET开源的简单、快速、强大的前后端分离后台权限管理系统