簡介
.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的日志模塊,包括使用原生和第三方的組件。