.NET Core项目中 Serilog日志文件配置

一、安装需要的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文件

相关推荐
影寂ldy2 小时前
C# try-catch 异常处理全套笔记
服务器·数据库·c#
TeamDev4 小时前
JxBrowser 9.3.0 版本发布啦!
java·后端·c#·混合应用·jxbrowser·浏览器控件·异步媒体设备
梦帮科技4 小时前
UE5 GAS 实战:用 Gameplay Ability System 搭建「赛博修真」境界与技能体系
c++·人工智能·python·ue5·c#
北域码匠8 小时前
RIPEMD-128哈希算法深度解析
c#·密码学·哈希算法·加密算法·消息摘要·ripemd-128·原生实现
csdn_aspnet10 小时前
C# 截取或匹配字符串内包含指定字符
c#·字符串·正则·string·匹配·截取
hez20104 天前
在 .NET 上构建超大托管数组
c#·.net·.net core·gc·clr
雨落倾城夏未凉9 天前
第四章c#方法-参数数组和可选参数(16)
后端·c#
唐青枫10 天前
线程不是越多越快:C#.NET Thread 生命周期、同步与后台工作线程实战
c#·.net
唐青枫11 天前
别只会反射:C#.NET Emit 动态生成代码实战详解
c#·.net
咕白m62512 天前
.NET 环境下 Word 超链接批量提取方案
c#·.net