Serilog输出日志到mysql_.Net Core3.0 WebApi 项目框架搭建 十六:使用Serilog替换掉Log4j...

本文介绍了如何在.Net Core 3.0 WebApi项目中使用Serilog代替Log4j进行日志记录,包括删除Log4j、安装Serilog相关包、配置Serilog写入控制台、文件和数据库,以及展示如何输出到Seq,提供了详细的配置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为什么使用Serilog

Serilog 是一个用于.NET应用程序的日志记录开源库,配置简单,接口干净,并可运行在最新的.NET平台上,与其他日志库不同, Serilog 是以功能强大的结构化事件数据为基础构建的, 支持将日志输出到控制台、文件、数据库和其它更多的方式,支持参数化日志模板,非常灵活。

之前我们项目使用的是Log4j来记录用户日志的,在开发的过程中,慢慢的发现Log4j好像并不能满足我们的需求,比如结构化,日志分析等,于是决定使用serilog来替换掉Log4j,在使用的过程中发现Serilog还是很强大的。

删除原有的Log4j

1.卸载log4j包

2.删除log4j文件夹

3.删除startup的代码

8bcf85fe6a0f4619158d97517c322b05.png

077d591d163920df9282663e870f01ad.png

4.将log4j相关的代码删除

安装Serilog包

nuget安装以下几个包

fbd9017641e24cb5e457c432c91f0c3d.png

配置Serilog

编辑Appsetting.json

"Serilog": {

"MinimumLevel": {

"Default": "Debug", //最小日志记录级别

"Override": { //系统日志最小记录级别

"Default": "Warning",

"System": "Warning",

"Microsoft": "Warning"

}

},

"WriteTo": [

{ "Name": "Console" }//输出到控制台

]

},

program.cs将系统的logger替换为serilog

public static IHostBuilder CreateHostBuilder(string[] args) =>Host.CreateDefaultBuilder(args)

.UseServiceProviderFactory(new AutofacServiceProviderFactory()) //

.ConfigureWebHostDefaults(webBuilder =>{

webBuilder.UseStartup()

.UseSerilog((context, logger)=>//注册Serilog

{

logger.ReadFrom.Configuration(context.Configuration);

logger.Enrich.FromLogContext();

});

});

Test控制器注入logger,并修改LogTest方法。

private readonly ILogger_logger;public TestController(ILoggerlogger)

{

_logger=logger;

}

///

///测试日志///

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值