为 ASPNETCORE 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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了