.net core使用ocelot---第三篇 日志记录
2019-08-08 15:02 一截生长 阅读(3249) 评论(0) 编辑 收藏 举报简介
.net core使用ocelot---第一篇 简单使用
.net core使用ocelot---第二篇 身份验证使用
上篇介绍使用asp.net core 创建API网关。本文将介绍Ocelot的Logging(日志)模块。
为什么日志很重要
软件开发日志是必须的部分,它给开发人员或者维护人员提供代码运行的真实情况。
开发完成以后,研发人员依然需要查找项目应用运行时的错误,足够的日志记录可以让定位问题变得简单。
所以。。。
Ocelot使用标准的日志接口,也实现了一些标准的asp.net core 日志模块。这让我们很容易理解它的日志模块。
好了,说那么多,不如动起来。
Step1
新建两个项目。
项目名称 |
项目类型 |
描述 |
APIGateway |
ASP.NET Core Empty |
示例入口 |
CustomersAPIServices |
ASP.NET Core Web API |
API服务操作用户请求操作 |
创建API Gateway 和CustomerAPIServices和最初的示例一样。
Step2
在appsettings.json中添加如下配置
"Logging": { "IncludeScopes": true, "LogLevel": { "Default": "Trace", "System": "Information", "Microsoft": "Information" } }
Step3
修改Startup的Configure方法,使控制台日志使用上面的配置
public void Configure(IApplicationBuilder app ,ILoggerFactory loggerFactory) { //console logging loggerFactory.AddConsole(Configuration.GetSection("Logging")); app.UseOcelot().Wait(); }
完成上述步骤后,我们再运行APIGateway并访问一些服务,你会得到类似下图的信息。
可以看出,我们所有的请求都会记录在控制台上。
通过这些信息我们可以分析我们的应用,但是绝大多数时间,我们并不需要这些信息出现在控制台。我们需要
存储这些信息,以便以后随时查看。
下一步,我们将使用NLog去持久化我们的日志。NLog是一款免费的,便于控制的,丰富日志路由的日志平台。
Step4
安装NLog.Web.AspNetCore,为其新建一个配置文件,用于配置NLog的选项。
<?xml version="1.0" encoding="utf-8" ?><nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true" internalLogLevel="Warn" internalLogFile="internal-nlog.txt"> <targets> <target xsi:type="File" name="debug" fileName="debug-${shortdate}.log" layout="${longdate}|${event-properties:item=EventId.Id}|${uppercase:${level}}|${logger}|${message} ${exception}" /> </targets> <rules> <logger name="*" minlevel="Debug" writeTo="debug" /> </rules> </nlog>
注意
在配置文件中,我只是将日志信息写入文件,根据你的需求你可以有不同的写入方式,比如,Elasticsearch,PostgreSQL,等等。
接下来,我们需要修改Startup类下的Configure方法,添加配置项,使项目支持NLog。
public void Configure(IApplicationBuilder app ,ILoggerFactory loggerFactory) { //console logging loggerFactory.AddConsole(Configuration.GetSection("Logging")); //nlog logging loggerFactory.AddNLog(); loggerFactory.ConfigureNLog("nlog.config"); app.UseOcelot().Wait(); }
当你启动APIGateway并访问服务时,NLog会产生一个日志文件,我们可以用notepad等打开。
完工。
源码在此。
奉上网盘:https://pan.baidu.com/s/17sqfGcYx8yEHRL_LwKAUlA
提取码:p3d0
总结
本文介绍如何使用Ocelot的日志模块,包括使用原生和第三方的组件。