首页 > 编程语言 >为 ASPNETCORE 7 项目添加 Serilog

为 ASPNETCORE 7 项目添加 Serilog

时间:2023-01-02 09:34:22浏览次数:48  
标签:Log 22 Serilog ASPNETCORE DBG 添加 日志 logger

本文将介绍如何为 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

标签:Log,22,Serilog,ASPNETCORE,DBG,添加,日志,logger
From: https://www.cnblogs.com/newbe36524/p/17018780.html

相关文章

  • 微信小程序 添加域名
    1、不校验合法域名、web-view(业务域名)、TLS版本以及HTTPS证书   2、小程序上的请求=》服务器的根地址=》都需要添加微信公众平台(否则会无法发送请求,导致代码报......
  • Mysql - 表的添加,删除,修改,排序,分组,模糊查询,分页查询
    表的添加,删除,修改#添加数据INSERTINTO表名称(字段名称,字段名称)VALUES(数据,数据)#修改数据UPDATE表名称SET字段名称=数据WHERE条件#删除数据DELETEFRO......
  • 实现一个大根堆。 包括添加方法push(int value),弹出方法pop()。
    packageclass06;importjava.util.Comparator;importjava.util.PriorityQueue;/***实现一个大根堆。*包括添加方法push(intvalue),弹出方法pop()。*弹出......
  • SpringBoot - Request域,Session域,Application域,Cookie域 获取与添加数据
    1.向Request域添加与获取数据的方式   SpringMvc-@ModelAttribute注解方式1HttpServletRequest添加与获取数据@RequestMapping(value="meta")publicv......
  • 02添加采购订单
    添加采购订单在领域共享项目中添加常量在Domain.Shared项目中添加文件夹Purchase,在文件夹下添加类PurchaseConsts.cs,添加以下代码:publicstaticclassPurchaseCo......
  • Selenium52-实现添加赛区无效用例
    面向对象实现test_007pytest测试方法实现:在原来的步骤前后增加调用通用函数步骤deftest_007(self):self.login_to_add_division_page()driver=......
  • [期刊论文写作] 系列(6) 全文审视与参考文献添加
    关键词:论文写作组织架构审视修改他人经验参考文献作者:ludwig1860日期:Dec302022经过前五期的写作章法的介绍,我们应该能完成论文的初稿。接下来,我们就要着手开展第......
  • WordPress右侧边栏添加彩色标签
    摘要玩WordPress建博客的朋友都知道标签的重要性,虽然知更鸟的Begin主题自动了非常不错的3D动态标签,不过仍然有人喜欢静态的标签,不过我今天给大家推荐的《右侧边栏添加彩色标......
  • WordPress正文添加您最近看过的功能
    让网站记住读者的浏览历史,让读者很方便地知道他最近阅读了你博客的哪些文章。这一举措,对于提高用户体验应该是不错的方法。那么,如何为你的WordPress站点添加这个功能?一起往......
  • Nginx动态添加模块
    说明:有时我们需要在现有的web服务器上增加新的模块实现更为丰富的功能,Nginx算是比较常用的web服务器,但是nginx也不仅仅只可以做web服务器,只要有对应的插件还可用作反向代理......