本篇文章为大家展示了Serilog如何在ASP。网络核心中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
安装Serilog
使用Visual Studio新建ASP。网络核心项目,接下来从NuGet上拉几个包,具体如下:
- <李>
Serilog
这个包提供了对基本的结构化日志的功能支持。
- <李>
Serilog。AspNetCore
这个包提供了Serilog对AspNetCore的支持。
- <李>
Serilog.Settings。配置
这个包打通了Serilog和配置,这样你就可以直接从appsettings。json中读取配置。
- <李>
Serilog.Sinks。控制台
控制台接收器顾名思义就是将Serilog的日志输出到控制台。
- <李>
Serilog.Sinks。RollingFile
实现了对滚动文件的支持。
使用Serilog水槽
Serilog利用水槽特性将日志送到不同的地方,比如:文本文件,数据库,甚至是ElasticSearch中,换句话说,汇特性可以把日志送到它该去的地方,当所有的nuget包都安装好了之后,下面的代码片段展示了如何将日志送到控制台中。
,,,,,,,, public HomeController (ILogger
![]()
值得注意的是,Serilog支持多个日志级别,如:冗长,调试信息、警告、错误和致命的。
有时候为了调试目的,将日志送到控制台是一个好办法,但将程序部署到生产之后,更通用的做法就是将日志记录到文件中,这样方便在生产上实时查看并做一定程度的日志分析,刚好这里的Serilog.Sink。RollingFile支持对滚动文件的支持,下面的代码片段展示了如何通过编程的方式将日志送到文件中。
,,,,,,,, public HomeController () ,,,,,,,{ ,,,,,,,,,,,var logger =, new LoggerConfiguration () .MinimumLevel.Debug .WriteTo () ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.RollingFile (@" e: \ log.txt",, retainedFileCountLimit:, 7) ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.CreateLogger (); ,,,,,,,,,,,for (int 小姐:=,0;,小姐:& lt;, byte.MaxValue;,我+ +) ,,,,,,,,,,,{ ,,,,,,,,,,,,,,,logger.Information(美元“log {我}“); ,,,,,,,,,,,} ,,,,,,,}
![]()
使用Serilog替换原生的日志
在ASP。网络核心中内置了记录器组件,这一节中我们一起看看如何使用Serilog将其进行替换,在程序。主方法中使用如下代码:
,,,, public class 程序 ,,,{ ,,,,,,,public static void Main (string [], args) ,,,,,,,{ ,,,,,,,,,,,Log.Logger =, new LoggerConfiguration () ,,,,,,,,,,,,.MinimumLevel.Debug () ,,,,,,,,,,,,.MinimumLevel.Override (“Microsoft",, LogEventLevel.Information) ,,,,,,,,,,,,.Enrich.FromLogContext () ,,,,,,,,,,,,.WriteTo.Console () ,,,,,,,,,,,,.CreateLogger (); ,,,,,,,,,,,试一试 ,,,,,,,,,,,{ null null null null null null null null null null null null null null null null null null null null null null null null null nullSerilog如何在ASP。网络核心中使用