.NET Core项目中 Serilog日志文件配置
一、安装需要的NuGet包
dotnet add package Serilog.AspNetCore
二、在 Program.cs
中配置 Serilog
//日志创建规则
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 配置
"Serilog": {"MinimumLevel": "Information","WriteTo": [{ "Name": "Console" },{"Name": "File","Args": {"path": "Logs/log-.txt","rollingInterval": "Day"}}]
},
四、Serilog的使用
4.1 在你的控制器或服务中注入 ILogger<T>
:
/// <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
静态类
//引用Serilog库
using Serilog;//具体方法中使用
Log.Information("这是一个信息日志");
Log.Error("这是一个错误日志");
五、使用效果
在项目文件夹下会生成一个Logs文件夹,里面会存储对应的log文件