ASP.NET Core 集成 Serilog 是一个流行的日志记录解决方案,它可以帮助你轻松地记录应用程序的运行情况。以下是一个简单的入门指南,帮助你在 ASP.NET Core 项目中集成 Serilog。
1. 安装 Serilog 和相关包
首先,你需要安装 Serilog 和相关的 ASP.NET Core 包。你可以使用 NuGet 包管理器或 .NET CLI 来安装这些包。
使用 NuGet 包管理器
- 打开 Visual Studio。
- 右键点击你的项目,选择“管理 NuGet 程序包”。
- 搜索并安装以下包:
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
文件(如果还没有的话),并添加以下内容:
{
"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 作为日志记录提供程序。
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>
接口来记录日志。
在控制器中记录日志
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 的配置和日志记录行为。