.net core使用ocelot---第三篇 日志记录
简介
.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的日志模块,包括使用原生和第三方的组件。
.net core使用ocelot---第三篇 日志记录的更多相关文章
- EF Core使用SQL调用返回其他类型的查询 ASP.NET Core 2.0 使用NLog实现日志记录 CSS 3D transforms cSharp:use Activator.CreateInstance with an Interface? SqlHelper DBHelper C# Thread.Abort方法真的让线程停止了吗? 注意!你的Thread.Abort方法真
EF Core使用SQL调用返回其他类型的查询 假设你想要 SQL 本身编写,而不使用 LINQ. 需要运行 SQL 查询中返回实体对象之外的内容. 在 EF Core 中,执行该操作的另一种方法 ...
- SpringBoot之旅第三篇-日志
一.前言 日志对于一个系统的重要性不言而喻,日志能帮我们快速定位线上问题,市场上存在非常多的日志框架,比较常见的有 JUL,JCL,Log4j,Log4j2,Logback.SLF4j.jboss-l ...
- .Net Core 3.0 使用 Serilog 把日志记录到 SqlServer
Serilog简介 Serilog是.net中的诊断日志库,可以在所有的.net平台上面运行.Serilog支持结构化日志记录,对复杂.分布式.异步应用程序的支持非常出色.Serilog可以通过插件的 ...
- Python学习 :常用模块(三)----- 日志记录
常用模块(三) 七.logging模块 日志中包含的信息应有正常的程序访问日志,还可能有错误.警告等信息输出 python的 logging 模块提供了标准的日志接口,你可以通过它存储各种格式的日志, ...
- .Net Core中间件和过滤器实现错误日志记录
1.中间件的概念 ASP.NET Core的处理流程是一个管道,中间件是组装到应用程序管道中用来处理请求和响应的组件. 每个中间件可以: 选择是否将请求传递给管道中的下一个组件. 可以在调用管道中的下 ...
- (4.7)mysql备份还原——深入解析二进制日志(3)binlog的三种日志记录模式详解
关键词:binlog模式,binlog,二进制日志,binlog日志 目录概述 0.binlog概述 查看binlog日志参数设置: show variables like '%log_bin%'; ...
- ASP.NET Core 学习笔记 第三篇 依赖注入框架的使用
前言 首先感谢小可爱门的支持,写了这个系列的第二篇后,得到了好多人的鼓励,也更加坚定我把这个系列写完的决心,也能更好的督促自己的学习,分享自己的学习成果.还记得上篇文章中最后提及到,假如服务越来越多怎 ...
- SpringBoot入门系列:第三篇 日志输出
http://blog.csdn.net/lxhjh/article/details/51752419
- ASP.NET Core 2.0 使用NLog实现日志记录
1.安装NuGet包 1.Install-Package NLog.Web.AspNetCore 2.Install-Package NLog 在csproj中编辑: <PackageRefer ...
随机推荐
- 使用sql实现固定样式的输出
declare @i int ,@j int, @k varchar(60) set @i = 1 while @i <= 12 begin set @j = 1 ...
- (十三)GBDT模型用于评分卡模型python实现
python信用评分卡建模(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_ca ...
- centos7.6下的python3.6.9虚拟环境安装elastalert
centos7.6安装python3.6.9+elastalert .编译安装python3..9环境 # 安装依赖 yum -y install zlib-devel bzip2-devel ope ...
- 运行okvis-mono
./build/okvis_app_synchronous config/config_fpga_p2_euroc1.yaml ../mav0
- WMS常用命令
- Spring cloud微服务安全实战-7-12整合链路追踪和日志监控
调用链路的监控和统一日志的监控结合起来.比如说我在调用链监控上发现有一个调用订单的服务慢了.通过pinpoint可以看到 .用户发出来的请求,经过了网关,经过了order,经过了pagement.通过 ...
- oracle 应用程序调用存储函数
package com.founder.ec.common.lucene; import java.sql.CallableStatement; import java.sql.Connection; ...
- FormsAuthentication使用指南,实现登录
一般情况下,在我们做访问权限管理的时候,会把用户的正确登录后的基本信息保存在Session中,以后用户每次请求页面或接口数据的时候,拿到Session中存储的用户基本信息,查看比较他有没有登录和能否访 ...
- consul集群搭建以及ACL配置
由于时间匆忙,要是有什么地方没有写对的,请大佬指正,谢谢.文章有点水,大佬勿喷这篇博客不回去深度的讲解consul中的一些知识,主要分享的我在使用的时候的一些操作和遇见的问题以及解决办法.当然有些东西 ...
- 第07组 Beta冲刺(4/4)
队名:秃头小队 组长博客 作业博客 组长徐俊杰 过去两天完成的任务:学习了很多东西 Github签入记录 接下来的计划:继续学习 还剩下哪些任务:后端部分 燃尽图 遇到的困难:自己太菜了 收获和疑问: ...