得益于.net core的模块化设计,我们可以很轻松的加入我们喜欢的功能和组件,今天我们就简单的说一下他的Logger组件。.net core 自带有日志组件,功能也比较完善,通过依赖注入的方式使用也很方便,应对一般的用途是足够的。但很多时候我们会选择使用第三方更加完善的日志组件,比较常用的有Nlog和Serilog,下面我们以Serilog为例简单的介绍一下如何在.net core中配置和使用第三方日志组件。
1、通过nuget下载serilog和对应的skins,skins有很多种,其中常用的有Serilog.Sinks.File/Serilog.Sinks.Console/Serilog.Sinks.Debug,它表示将日志的内容输出到不同的媒介中,对应的就是上面的文件、控制台和debug窗口。为了图省事,我们只需要添加下图的这个包就行了,可以看到它的依赖种已经包含了我们需要的skins
2、配置Serilog。其实很简单只需要在Program类种的main方法中做如下修改即可(注意:不是在startup类中):
public static void Main(string[] args)
{
//第三方log工具serilog的相关配置
Log.Logger = new LoggerConfiguration()
//配置日志最小输出的级别为:debug
.MinimumLevel.Debug()
//如果是Microsoft的日志,最小记录等级为info
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.Enrich.FromLogContext()
//输出到控制台
.WriteTo.Console()
//将日志保存到文件中(两个参数分别是日志的路径和生成日志文件的频次,当前是一天一个文件)
.WriteTo.File(Path.Combine("logs", @"log.txt"), rollingInterval: RollingInterval.Day)
.CreateLogger();
CreateWebHostBuilder(args)
//使用serilog
.UseSerilog()
.Build()
.Run();
}
好了,到此我们就完成了基本的配置。我们启动一下项目会发现控制台的日志发生了变化:
左边是原始的,右边的是我们配置了serilog后的样子,并且我们的项目中也多出来一个log文件夹,里面存放了我们产生的日志文件,文件名为 log+八位日期。
3、使用log。一般我们通过构造器注入的方式来使用logger:
注入完后我们就可以愉快的添加日志啦:
4、拓展:日志的等级和LogLevel 枚举