一、安装需要的NuGet包

dotnet add package Serilog.AspNetCore
二、在 Program.cs
中配置 Serilog
cs
//日志创建规则
Log.Logger = new LoggerConfiguration()
.WriteTo.Console()
.WriteTo.File("Logs/log-.txt", rollingInterval: RollingInterval.Day)
.CreateLogger();
var builder = WebApplication.CreateBuilder(args);
builder.Host.UseSerilog();
//从配置文件中的读取 Serilog 配置
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(builder.Configuration)
.CreateLogger();
var app = builder.Build();
// 其他中间件和配置
app.Run();
三、在 appsettings.json
中添加 Serilog 配置
javascript
"Serilog": {
"MinimumLevel": "Information",
"WriteTo": [
{ "Name": "Console" },
{
"Name": "File",
"Args": {
"path": "Logs/log-.txt",
"rollingInterval": "Day"
}
}
]
},
四、Serilog的使用
4.1 在你的控制器或服务中注入 ILogger<T>
:
cs
/// <summary>
/// Mes系统Api对接
/// </summary>
[Route("api/[controller]")]
[ApiController]
public class MesController : Controller
{
private readonly ILogger<MesController> _logger;
private readonly IMesService _mesService;
public MesController(ILogger<MesController> logger,IMesService mesService)
{
_logger = logger;
_mesService = mesService;
}
/// <summary>
/// 订单包装数据返回
/// </summary>
/// <param name="model">WMS的数据结构</param>
/// <returns></returns>
[HttpPost("PostBackOrderPack")]
public async Task<MessageResponse<string>> PostBackOrderPack(List<OrderPackDto> model)
{
try
{
var result = await _mesService.EditOrderPackDetailList(model);
_logger.LogInformation("订单包装数据返回:" + result);
return new MessageResponse<string>
{
Status = 200,
Message = "获取成功",
Success = true,
Response = result
};
}
catch (Exception ex)
{
_logger.LogWarning("订单包装数据返回异常:"+model);
return new MessageResponse<string>
{
Status = 500,
Message = $"接口异常:{ex}",
Success = false,
};
}
}
}
4.2 使用 Serilog 的 Log
静态类
cs
//引用Serilog库
using Serilog;
//具体方法中使用
Log.Information("这是一个信息日志");
Log.Error("这是一个错误日志");
五、使用效果
在项目文件夹下会生成一个Logs文件夹,里面会存储对应的log文件
