ASP.NET Core 入门教学五 集成日志

ASP.NET Core 集成 Serilog 是一个流行的日志记录解决方案,它可以帮助你轻松地记录应用程序的运行情况。以下是一个简单的入门指南,帮助你在 ASP.NET Core 项目中集成 Serilog。

1. 安装 Serilog 和相关包

首先,你需要安装 Serilog 和相关的 ASP.NET Core 包。你可以使用 NuGet 包管理器或 .NET CLI 来安装这些包。

使用 NuGet 包管理器
  1. 打开 Visual Studio。
  2. 右键点击你的项目,选择"管理 NuGet 程序包"。
  3. 搜索并安装以下包:
    • Serilog.AspNetCore
    • Serilog.Settings.Configuration(可选,用于从配置文件中读取 Serilog 配置)
使用 .NET CLI

在项目目录中运行以下命令:

复制代码
复制代码
dotnet add package Serilog.AspNetCore
dotnet add package Serilog.Settings.Configuration

2. 配置 Serilog

你可以通过多种方式配置 Serilog,这里我们使用 appsettings.json 文件来配置。

创建 appsettings.json

在你的项目中创建一个 appsettings.json 文件(如果还没有的话),并添加以下内容:

复制代码
cs 复制代码
{
  "Serilog": {
    "Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.File" ],
    "MinimumLevel": "Debug",
    "WriteTo": [
      { "Name": "Console" },
      { "Name": "File", "Args": { "path": "log.txt" } }
    ],
    "Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ],
    "Properties": {
      "Application": "YourApplicationName"
    }
  }
}
配置 Startup.cs

在你的 Startup.cs 文件中,配置 Serilog 作为日志记录提供程序。

复制代码
cs 复制代码
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Serilog;
using Serilog.Settings.Configuration;

namespace YourNamespace
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        public void ConfigureServices(IServiceCollection services)
        {
            // 其他服务配置
        }

        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            // 其他中间件配置

            Log.Logger = new LoggerConfiguration()
                .ReadFrom.Configuration(Configuration)
                .CreateLogger();

            app.UseSerilogRequestLogging();
        }
    }
}

3. 使用 Serilog 记录日志

在你的应用程序中,你可以使用 ILogger<T> 接口来记录日志。

在控制器中记录日志
复制代码
cs 复制代码
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System;

namespace YourNamespace.Controllers
{
    [ApiController]
    [Route("[controller]")]
    public class WeatherForecastController : ControllerBase
    {
        private static readonly string[] Summaries = new[]
        {
            "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
        };

        private readonly ILogger<WeatherForecastController> _logger;

        public WeatherForecastController(ILogger<WeatherForecastController> logger)
        {
            _logger = logger;
        }

        [HttpGet]
        public IEnumerable<WeatherForecast> Get()
        {
            _logger.LogInformation("Fetching weather forecasts.");
            var rng = new Random();
            return Enumerable.Range(1, 5).Select(index => new WeatherForecast
            {
                Date = DateTime.Now.AddDays(index),
                TemperatureC = rng.Next(-20, 55),
                Summary = Summaries[rng.Next(Summaries.Length)]
            })
            .ToArray();
        }
    }
}

4. 运行应用程序

现在你可以运行你的应用程序,并查看控制台和 log.txt 文件中的日志输出。

复制代码
复制代码
dotnet run

通过以上步骤,你已经成功地在 ASP.NET Core 项目中集成了 Serilog,并开始记录应用程序的日志。你可以根据需要进一步自定义 Serilog 的配置和日志记录行为。

相关推荐
码事漫谈5 小时前
C++ 多线程开发:从零开始的完整指南
后端
9ilk5 小时前
【C++】--- 特殊类设计
开发语言·c++·后端
码事漫谈6 小时前
十字路口的抉择:B端与C端C++开发者的职业路径全解析
后端
提笔了无痕7 小时前
git基本了解、常用基本命令与使用
git·后端
java1234_小锋7 小时前
Spring IoC的实现机制是什么?
java·后端·spring
喵个咪7 小时前
开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:JWT 集成指南
后端·go
绝不收费—免费看不了了联系我8 小时前
Fastapi的单进程响应问题 和 解决方法
开发语言·后端·python·fastapi
喵个咪8 小时前
开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:OPA 集成指南:从原理到实践
后端·go
Victor3568 小时前
Netty(11) Netty的心跳机制是什么?为什么需要它?
后端
Victor3568 小时前
Netty(12)Netty支持哪些协议和传输方式?
后端