简介

  .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---第三篇 日志记录的更多相关文章

  1. 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 中,执行该操作的另一种方法 ...

  2. SpringBoot之旅第三篇-日志

    一.前言 日志对于一个系统的重要性不言而喻,日志能帮我们快速定位线上问题,市场上存在非常多的日志框架,比较常见的有 JUL,JCL,Log4j,Log4j2,Logback.SLF4j.jboss-l ...

  3. .Net Core 3.0 使用 Serilog 把日志记录到 SqlServer

    Serilog简介 Serilog是.net中的诊断日志库,可以在所有的.net平台上面运行.Serilog支持结构化日志记录,对复杂.分布式.异步应用程序的支持非常出色.Serilog可以通过插件的 ...

  4. Python学习 :常用模块(三)----- 日志记录

    常用模块(三) 七.logging模块 日志中包含的信息应有正常的程序访问日志,还可能有错误.警告等信息输出 python的 logging 模块提供了标准的日志接口,你可以通过它存储各种格式的日志, ...

  5. .Net Core中间件和过滤器实现错误日志记录

    1.中间件的概念 ASP.NET Core的处理流程是一个管道,中间件是组装到应用程序管道中用来处理请求和响应的组件. 每个中间件可以: 选择是否将请求传递给管道中的下一个组件. 可以在调用管道中的下 ...

  6. (4.7)mysql备份还原——深入解析二进制日志(3)binlog的三种日志记录模式详解

    关键词:binlog模式,binlog,二进制日志,binlog日志 目录概述 0.binlog概述 查看binlog日志参数设置: show variables like '%log_bin%'; ...

  7. ASP.NET Core 学习笔记 第三篇 依赖注入框架的使用

    前言 首先感谢小可爱门的支持,写了这个系列的第二篇后,得到了好多人的鼓励,也更加坚定我把这个系列写完的决心,也能更好的督促自己的学习,分享自己的学习成果.还记得上篇文章中最后提及到,假如服务越来越多怎 ...

  8. SpringBoot入门系列:第三篇 日志输出

    http://blog.csdn.net/lxhjh/article/details/51752419

  9. ASP.NET Core 2.0 使用NLog实现日志记录

    1.安装NuGet包 1.Install-Package NLog.Web.AspNetCore 2.Install-Package NLog 在csproj中编辑: <PackageRefer ...

随机推荐

  1. /usr/bin/xauth: file /home/user/.Xauthority does not exist

    错误信息如下: /usr/bin/xauth: file /home/user/.Xauthority does not exist 错误原因:是因为添加用户时没有授权对应的目录,仅仅执行了usera ...

  2. 【软工实践】Beta冲刺(1/5)

    链接部分 队名:女生都队 组长博客: 博客链接 作业博客:博客链接 小组内容 恩泽(组长) 过去两天完成了哪些任务 描述 登陆注册.查看用户信息.添加用户任务.查看任务等API的完善 tomcat的学 ...

  3. CentOS下启动和停止Tomcat

    启动Tomcat: 进入tomcat目录/bin,然后./startup.sh 停止Tomcat: 进入tomcat目录/bin,然后./shutdown.sh

  4. ssh密匙互信操作【原创】

    1.简便ssh密匙信任方法 只在一台服务器上创建ssh-keygen [root@SMSJKSRVBJ02 ~]# ssh-keygen Generating public/private rsa k ...

  5. 【vue】npm、node版本查看及npm常用命令

    1,版本查看 node -v npm -v 2,修改NPM的缓存目录和全局目录路径 D盘node目录下创建两个目录,分别是node_cache和node_global,这是用来放安装过程的缓存文件以及 ...

  6. 010-MySQL批量插入测试数据

    1.由于测试需要 需要将数据插入到百万级别,故需要使用循环语句,循环参看:009-MySQL循环while.repeat.loop使用 方式三.使用values批量插入[[推荐答案]] 基础格式 IN ...

  7. 开发人员不得不知的MySQL索引和查询优化

    转载:https://blog.csdn.net/enmotech/article/details/88809822 本文主要总结了慢查询优化的过程中常用的以及不合理的操作,适合有 MySQL 基础的 ...

  8. Base64(2)

    import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.UnsupportedEncoding ...

  9. 基于EasyDarwin开源流媒体服务器框架实现EasyNVR H5无插件直播流媒体服务器方案

    背景分析 在之前的一篇博客<web无插件播放RTSP摄像机方案,拒绝插件,拥抱H5!>中,描述了实现一套H5无插件直播方案的各个组件的参考建议,又在博客<EasyNVR H5流媒体服 ...

  10. Python爬虫笔记安装篇

    目录 爬虫三步 请求库 Requests:阻塞式请求库 Requests是什么 Requests安装 selenium:浏览器自动化测试 selenium安装 PhantomJS:隐藏浏览器窗口 Ph ...