当前位置: 首页 > news >正文

ASP .NET Core 学习(.NET9)Serilog日志整合

Serilog 是一个功能强大的 .NET 日志库,以其简洁的配置和灵活的输出方式而受到开发者喜爱。支持多种日志输出目标(如控制台、文件、数据库等),并且可以通过结构化日志的方式记录丰富的上下文信息,便于后续的日志分析和调试。Serilog 还提供了丰富的扩展包,能够轻松集成到各种 .NET 应用程序中,帮助开发者高效地管理和记录日志,这里我们选用控制台输出和文件输出日志即可满足大部分业务需求。

一、NuGet 安装

// 核心库
Serilog	
// AspNetCore中使用Serilog	
Serilog.AspNetCore	
// 控制台输出
Serilog.Sinks.Console
// 日志文件输出
Serilog.Sinks.File

二、配置 Serilog

Program.cs中的Main方法中添加如下代码

public static void Main(string[] args)
{
  var builder = WebApplication.CreateBuilder(args);
  //...
  #region 配置 Serilog

  Log.Logger = new LoggerConfiguration()
       .MinimumLevel.Information() // 设置最低日志级别为 Info
       .WriteTo.Console()   // 输出到控制台
       // 输出到运行目录的Serilog文件夹下,按天分割 20250101.txt
       .WriteTo.File(AppContext.BaseDirectory + "/Serilog/.txt", rollingInterval: RollingInterval.Day) 
       .CreateLogger();

  Log.Information("Serilog 已配置完成。");

  // 配置Serilog为Log;
  builder.Host.UseSerilog();

  var app = builder.Build();
  //...
}

删除 appsetting.json 配置文件中的 Logging 配置节点

三、使用

Controllers文件夹下,新建SysLogController,内容如下:

[ApiController]
[Route("[controller]")]
[ApiExplorerSettings(GroupName = "v1")] // 配置接口属于v1的swagger文档
public class SysLogController : ControllerBase
{
    private readonly ILogger<SysLogController> _logger;

    public SysLogController(ILogger<SysLogController> logger)
    {
    	// 使用容器中的日志组件,经过前面的配置,日志已经变更为Serilog了
        _logger = logger;
    }

    [HttpGet]
    public string WhiteLog() 
    {
        _logger.LogWarning("这是一条报警信息");
        _logger.LogInformation("这是一条信息");
        _logger.LogError("这是一条错误信息");

        return "操作成功";
    }
}

在浏览器或者调试工具中访问
http://localhost:5000/SysLog
看下控制台输出一下内容:
在这里插入图片描述
同时运行目录下有如下文件:
在这里插入图片描述
在这里插入图片描述
即完成配置要求,之后需要在输出日志的地方进行使用即可,如需要将日志输出到数据库中,Serilog也提供了多个Sink包,大家自行查找即可

相关文章:

  • *pu相关概念介绍
  • 获取Kernel32基地址
  • 如何构建一个 Docker 镜像?
  • [数字图像处理]实验三:直方图增强
  • 快速生成viso流程图图片形式
  • web渲染技术与SEO—第一章—SEO详解
  • Redis——快速入门
  • Redis 主从复制、哨兵与集群的关系及工作原理详解
  • 关于 QPalette设置按钮背景未显示出来 的解决方法
  • Spring 为什么要有依赖注入
  • Python快捷手册
  • HCIA-IP路由动态-RIP
  • Qt5 C++ QMap使用总结
  • Unity Shader学习日记 part6 基本光照模型
  • CES Asia 2025增设未来办公教育板块,科技变革再掀高潮
  • Trae 是一款由 AI 驱动的 IDE,让编程更加愉悦和高效。国际版集成了 GPT-4 和 Claude 3.5,国内版集成了DeepSeek-r1
  • 【CXX】4.4 其他构建系统
  • 分布式多卡训练(DDP)踩坑
  • 解锁Android RemoteViews:跨进程UI更新的奥秘
  • 软考架构师笔记-存储管理
  • 扬州网站推广/seo基础入门视频教程
  • 有什么可以做建筑模型的网站/seo技术助理
  • iis做网站的流程/百度网盟推广
  • html5产品展示网站模板/运营培训班
  • 图片发到哪些网站 seo/seo对网店推广的作用
  • 做外贸b2b网站/无锡百度关键词优化