【LSP】手把手教你AspNetCore WebApi:Seri

编程开发   © 文章版权由 admin 解释,禁止匿名转载

#楼主# 2020-10-10

前言
小明目前已经把“待办事项”功能实现了,API文档也搞定了,但是马老板说过,绝对不能让没有任何监控的项目上线的。

Serilog是什么?
在.NET使用日志框架第一时间会想到NLog或是Log4Net,Serilog 是这几年快速崛起的Log框架之一,Serilog是以Structured logging 为基础进行设计,透过logging API 可以轻松的记录应用程式中对象属性,方便快速进行logging 内容进行查询与分析,并将其纪录内容透过json (可指定) 的方式输出。

使用
首先,将Serilog.AspNetCore NuGet软件包安装到您的应用程序中。

dotnet add package Serilog.AspNetCore
接下来,在应用程序的Program.cs文件中,首先配置Serilog。

然后,添加UseSerilog()到中的通用主机CreateHostBuilder()。

public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseSerilog() // <-添加此行
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup();
});
然后,通过删除默认记录器的其余配置进行清理:

"Logging"从appsettings.json文件中删除此部分
最后,调试启动vs,可以查看以下效果:


在控制器使用
首先.NETCore通过继承 ILogger接口实现了它自己的日志记录。通过借助依赖注入机制,它可以很容易地使用。

测试GetTodo接口,再次查看以下效果:


输出到文件
在原来的输出到控制台的基础上增加.WriteTo.File(@"C:\LogFiles\log.txt")就可以了。

Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.Enrich.FromLogContext()
.WriteTo.Console()
.WriteTo.File(
@"C:\LogFiles\log.txt")
.CreateLogger();
再次查看以下效果:


使用配置文件

小结
目前为止,小明把日志记录也搞定了,摸了摸光滑的脑袋,对于优秀青年小明来说添加日志按时so easy!当然Serilog可不是这么简单,还有很多功能留给其他小伙伴们去发掘。

成为第一个回答人

评论

登录后才可发表内容
  • 主题

    124

  • 帖子

    0

  • 关注者

    0

Copyright © 2019 凯特网.   Powered by HYBBS 2.3.4  

Runtime:0.0671s Mem:2053Kb