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

embedded/2025/3/6 11:22:20/
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 配置 SerilogLog.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://www.ppmy.cn/embedded/170465.html

相关文章

解决redis lettuce连接池经常出现连接拒绝(Connection refused)问题

一.软件环境 windows10、11系统、springboot2.x、redis 6 7 linux&#xff08;centos&#xff09;系统没有出现这问题&#xff0c;如果你是linux系统碰到的&#xff0c;本文也有一定大参考价值。 根本思路就是&#xff1a;tcp/ip连接的保活(keepalive)。 二.问题描述 在spr…

【FAQ】HarmonyOS SDK 闭源开放能力 —Map Kit(5)

1.问题描述&#xff1a; 提供两套标准方案&#xff0c;可根据体验需求选择&#xff1a; 1.地图Picker(地点详情) 用户体验&#xff1a;①展示地图 ②标记地点 ③用户选择已安装地图应用 接入文档&#xff1a;https://developer.huawei.com/consumer/cn/doc/harmonyos-guide…

单片机入门(一)

一、单片机的内部资源 Flash&#xff1a;程序存储空间 RAM&#xff1a; 数据存储空间 SFR: 特殊功能寄存器的简称。它存在于单片机的内部存储空间中&#xff0c;用于存储控制单片机各种硬件模块工作的数据。这些寄存器具有特定的功能&#xff0c;控制着单片机的各种操作&#…

使用easyocr、PyPDF2对图像及PDF文档进行识别

一、概述 本 Python 脚本的主要功能是对当前目录及其子目录下的图片和 PDF 文件进行光学字符识别&#xff08;OCR&#xff09;处理。它使用 easyocr 库处理图片中的文字&#xff0c;使用 PyPDF2 库提取 PDF 文件中的文本&#xff0c;并将处理结果保存为文本文件。同时&#xff…

文件上传漏洞详细利用流程

一、了解基本术语 1、后门 像房子一样&#xff0c;前门后门都可以进出房子&#xff0c;而较之前门&#xff0c;后门更具有隐蔽性。电脑技术中的后门是抽象概念&#xff0c;意指隐蔽性高或不常用的&#xff0c;区别于常规操作所使用的一种出入口。现金网络后门形形色色&#x…

深入探索C++17文件系统库:std::filesystem全面解析

前言 在C编程中&#xff0c;文件系统操作是许多应用程序的基础功能之一。无论是读写文件、创建目录&#xff0c;还是遍历文件系统&#xff0c;文件系统操作几乎无处不在。然而&#xff0c;在C17之前&#xff0c;标准库并没有提供一个统一、高效且易用的文件系统操作接口。开发…

Go语言--语法基础2--基本编程概念--语法单词说明

2、语法单词说明 行分隔符 在 Go 程序中&#xff0c;一行代表一个语句结束。 每个语句不需要像 C 家族中的其它语言一样以分号 ; 结尾&#xff0c;因为这些工作都将由编译器自动完成。 如果你打算将多个语句写在同一行&#xff0c;它们则必须使用 ; 人为区分。 注释 注释不…

vmware虚拟机安装银河麒麟高级服务器操作系统V10

文档时间&#xff1a;2025年03月 安装环境 vmware虚拟机版本&#xff1a;VMware Workstation 17 镜像版本&#xff1a;Kylin-Server-V10-SP3-2403-Release-20240426-x86_64.iso 镜像内核版本&#xff1a;4.19 镜像下载 镜像在官网下载&#xff0c;申请使用 官网&#xff1…