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 的配置和日志记录行为。

相关推荐
咖丨喱1 小时前
【Action帧简要分析】
服务器·数据库·asp.net
kangkang-1 小时前
PC端基于SpringBoot架构控制无人机(二):MavLink协议
java·spring boot·后端·无人机
麦兜*2 小时前
Spring Boot秒级冷启动方案:阿里云FC落地实战(含成本对比)
java·spring boot·后端·spring·spring cloud·系统架构·maven
喷火龙8号2 小时前
MSC中的Model层:数据模型与数据访问层设计
后端·架构
5ycode3 小时前
dify项目结构说明与win11本地部署
后端·开源
LaoZhangAI3 小时前
GPT-image-1 API如何传多图:开发者完全指南
前端·后端
fouryears_234173 小时前
深入拆解Spring核心思想之一:IoC
java·后端·spring
codervibe3 小时前
从 0 到 1,我如何独立开发一套教务系统(EduCore)
后端
error_cn3 小时前
podman安全性设置
后端
一个热爱生活的普通人3 小时前
Go 泛型终极指南:告别 interface{},写出更安全、更强大的代码!
后端·go