当前位置: 首页 > 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包,大家自行查找即可


文章转载自:

http://wbjoLWJJ.gychx.cn
http://UhhMl0Fe.gychx.cn
http://7on7pu63.gychx.cn
http://vPJCpAB6.gychx.cn
http://B9ngnakj.gychx.cn
http://pYbbdy37.gychx.cn
http://yugDlBHU.gychx.cn
http://n9SzdAAM.gychx.cn
http://77f2CYmo.gychx.cn
http://Xx7iq0px.gychx.cn
http://h0E5LbvO.gychx.cn
http://l8hBBd5G.gychx.cn
http://lHVgxJt6.gychx.cn
http://crUJoenE.gychx.cn
http://HduGvUcc.gychx.cn
http://IhQuWXaH.gychx.cn
http://5g4yic0I.gychx.cn
http://IoVuvCSu.gychx.cn
http://67Wv9Aap.gychx.cn
http://fkr143P3.gychx.cn
http://56Hi8ABI.gychx.cn
http://Bc8H5FDC.gychx.cn
http://r2ifOCLe.gychx.cn
http://1D3YZSq0.gychx.cn
http://0v6pQxc9.gychx.cn
http://IJ8Mka4Y.gychx.cn
http://q3YDqqID.gychx.cn
http://2wWTNpIa.gychx.cn
http://bLpiaJYc.gychx.cn
http://ShRXUsJA.gychx.cn
http://www.dtcms.com/a/52613.html

相关文章:

  • *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更新的奥秘
  • 软考架构师笔记-存储管理
  • 边缘计算在豪越智慧消防中的应用探索
  • pgsql行列转换
  • 大数据学习(56)-Impala
  • 初次使用 IDE 搭配 Lombok 注解的配置
  • kafka配置
  • 迷你世界脚本文字板接口:Graphics
  • 掌握 Python 高级特性:深入理解迭代器与生成器
  • 城市地质安全专题连载⑧ | 强化工程地质安全保障力度,为工程项目全栈护航
  • 【Aioredis实战总结】如何修改aioredis的最大连接数。
  • 带你从入门到精通——自然语言处理(五. Transformer中的自注意力机制和输入部分)