为什么使用Serilog
Serilog 是一个用于.NET应用程序的日志记录开源库,配置简单,接口干净,并可运行在最新的.NET平台上,与其他日志库不同, Serilog 是以功能强大的结构化事件数据为基础构建的, 支持将日志输出到控制台、文件、数据库和其它更多的方式,支持参数化日志模板,非常灵活。
之前我们项目使用的是Log4j来记录用户日志的,在开发的过程中,慢慢的发现Log4j好像并不能满足我们的需求,比如结构化,日志分析等,于是决定使用serilog来替换掉Log4j,在使用的过程中发现Serilog还是很强大的。
删除原有的Log4j
1.卸载log4j包
2.删除log4j文件夹
3.删除startup的代码
4.将log4j相关的代码删除
安装Serilog包
nuget安装以下几个包
配置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;
}
///
///测试日志///