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

相关推荐
MarkGosling1 小时前
【开源项目】网络诊断告别命令行!NetSonar:开源多协议网络诊断利器
运维·后端·自动化运维
Codebee1 小时前
OneCode3.0 VFS分布式文件管理API速查手册
后端·架构·开源
_新一1 小时前
Go 调度器(二):一个线程的执行流程
后端
estarlee1 小时前
腾讯云轻量服务器创建镜像免费API接口教程
后端
风流 少年2 小时前
Cursor创建Spring Boot项目
java·spring boot·后端
毕设源码_钟学姐2 小时前
计算机毕业设计springboot宿舍管理信息系统 基于Spring Boot的高校宿舍管理平台设计与实现 Spring Boot框架下的宿舍管理系统开发
spring boot·后端·课程设计
方圆想当图灵3 小时前
ScheduledFutureTask 踩坑实录
后端
全栈凯哥3 小时前
16.Spring Boot 国际化完全指南
java·spring boot·后端
M1A13 小时前
Java集合框架深度解析:LinkedList vs ArrayList 的对决
java·后端
31535669134 小时前
Springboot实现一个接口加密
后端