为 ASPNET CORE 7 项目添加 Serilog
Posted dotNET跨平台
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为 ASPNET CORE 7 项目添加 Serilog相关的知识,希望对你有一定的参考价值。
本文将介绍如何为 ASP.NET Core 项目添加 Serilog。
添加 Serilog
首先,我们需要在项目中添加 Serilog 的 NuGet 包。
dotnet add package Serilog.AspNetCore
修改 Program.cs
在 Program.cs 中,添加 Serilog 的配置。
using Serilog;
Log.Logger = new LoggerConfiguration()
.WriteTo.Console()
.CreateLogger();
try
Log.Information("Starting web application");
var builder = WebApplication.CreateBuilder(args);
builder.Host.UseSerilog(); // <-- Add this line
var app = builder.Build();
app.MapGet("/", () => "Hello World!");
app.Run();
catch (Exception ex)
Log.Fatal(ex, "Application terminated unexpectedly");
finally
Log.CloseAndFlush();
这段代码中,我们使用 Log.Logger
创建了一个 Serilog 的日志记录器。然后,我们使用 Log.Information
记录了一条日志。在 CreateHostBuilder
方法中,我们使用 builder.Host.UseSerilog()
将 Serilog 配置到主机中。
这里的 Try/Catch 语句是为了确保在应用程序退出时,日志记录器能够正确关闭。
移除默认的日志记录器
我们可以移除 appsetting.json 中的日志记录器配置,仅仅保留 Serilog 的配置。
"Serilog":
"Using": ["Serilog.Sinks.Console", "Serilog.Sinks.File"],
"MinimumLevel": "Debug",
"WriteTo": [ "Name": "Console" ],
"Enrich": ["FromLogContext", "WithMachineName", "WithThreadId"]
运行应用程序
运行应用程序,我们可以看到控制台中输出了日志。
[22:14:44.646 DBG] RouteCollection.RouteAsync
Routes:
Microsoft.AspNet.Mvc.Routing.AttributeRoute
controller=Home/action=Index/id?
Handled? True
[22:14:44.647 DBG] RouterMiddleware.Invoke
Handled? True
[22:14:45.706 DBG] /lib/jquery/jquery.js not modified
[22:14:45.706 DBG] /css/site.css not modified
[22:14:45.741 DBG] Handled. Status code: 304 File: /css/site.css
记录日志
记录日志和之前的 ASP.NET Core 项目一样,我们可以使用 ILogger
接口。
public class HomeController : Controller
private readonly ILogger<HomeController> _logger;
public HomeController(ILogger<HomeController> logger)
_logger = logger;
public IActionResult Index()
_logger.LogInformation("Hello World!");
return View();
总结
在本文中,我们介绍了如何为 ASP.NET Core 项目添加 Serilog。
参考资料
Serilog.AspNetCore[1]
Serilog.Settings.Configuration[2]
本文作者:newbe36524
本文链接:https://www.newbe.pro/ChatAI/0x014-Intro-serilog-into-aspnet-core-7/
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
参考资料
[1]
Serilog.AspNetCore: https://www.nuget.org/packages/Serilog.AspNetCore/
[2]Serilog.Settings.Configuration: https://github.com/serilog/serilog-settings-configuration
以上是关于为 ASPNET CORE 7 项目添加 Serilog的主要内容,如果未能解决你的问题,请参考以下文章
Swashbuckle.AspNet.Core:Swagger UI 显示空白页面 - 如何修复?
在mac中找不到匹配命令“dotnet-aspnet-codegenerator”asp.net core 2.1项目的可执行文件