一、前言

NET Core越来越受欢迎,因为它具有在多个平台上运行的原始.NET Framework的强大功能。Kafka正迅速成为软件行业的标准消息传递技术。这篇文章简单介绍了如何使用.NET(Core)和Kafka实现NLog的Target。

在日常项目开发过程中,Java体系下Spring Boot + Logback很容易就接入了Kafka实现了日志收集,在.NET和.NET Core下一直习惯了使用NLog作为日志组件。为了让微服务环境中dotnet和java的服务都统一的进行日志收集,接下来的文章中会介绍两种语言的统一接入方式。写这个组件的目地是让团队成员不需要编写NLog的JsonLayout从而达到与java服务输出一样格式到kafka的目地,简化开发人员的配置难度,当然代价就是配置不灵活了。

二、开源

通过实现NLog的Target,接入kafka将日志传输到Logstash的组件。

https://github.com/maxzhang1985/NLog.Kafka

三、使用

建立项目

NLog.Kafka组件支持.NET 4.5+和 NETStandard1.6+ ,所在可以在传统.NET使用,当然也支持.NET Core的跨平台使用(Win、Linux、Mac)。

项目引用

  • NLog 4.5.8

  • NLog.Kafka

  • librdkafka.redist

引用librdkafka.redist是因为使用了依赖库Confluent.Kafka 0.11.5,Confluent.Kafka 使用了著名的librdkafka开源库,它是用C ++编写的,作为其它的语言(如C ++,C#,Python和Node)的Kafka驱动程序的基础。

配置

在项目中建立NLog.config,并设置为Copy always,内容如下:

编写测试代码

Logstash配置

四、最后

附上的Demo和开源库地址:https://github.com/maxzhang1985/NLog.Kafka

GitHub:https://github.com/maxzhang1985/YOYOFx 如果觉还可以请Star下, 欢迎一起交流。

.NET Core 开源学习群:214741894

原文地址: https://www.cnblogs.com/maxzhang1985/p/9522017.html


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

.NET Core使用NLog通过Kafka实现日志收集相关推荐

  1. 实战:kafka实现日志收集系统

    实战:kafka实现日志收集系统 一.Kafka案例需求概述 1.1 需要收集的信息: 用户唯一标识 用户操作时间 具体用户操作 1.2 工作流程: 用户的操作会由Web服务器进行响应. 同时用户的操 ...

  2. asp.net core结合NLog搭建ELK实时日志分析平台

    0.整体架构 整体架构目录:ASP.NET Core分布式项目实战-目录 一.介绍ELK 1.说明(此篇ELK采用rpm的方式安装在服务器上)-牛刀小试 承接上一篇文章的内容准备部署ELK来展示asp ...

  3. ELK+Kafka 企业日志收集平台(二)这是原版

    上篇博文主要总结了一下elk.基于kafka的zookeeper集群搭建,以及系统日志通过zookeeper集群达到我们集群的整个过程.下面我们接着下面这个未完成的几个主题 4.Kibana部署; 5 ...

  4. ELK+Kafka 企业日志收集平台(二)

    上篇博文主要总结了一下elk.基于kafka的zookeeper集群搭建,以及系统日志通过zookeeper集群达到我们集群的整个过程.下面我们接着下面这个未完成的几个主题 4.Kibana部署; 5 ...

  5. ELK+Kafka 企业日志收集平台(一)

    背景: 最近线上上了ELK,但是只用了一台Redis在中间作为消息队列,以减轻前端es集群的压力,Redis的集群解决方案暂时没有接触过,并且Redis作为消息队列并不是它的强项:所以最近将Redis ...

  6. 搭建elk+logstash+kafka+filebeat日志收集平台

    文章目录 前言 组件介绍 原理图 环境介绍 安装 日志收集与展示 前言 在日常的运维过程中,对系统日志和业务日志的处理比较重要,对于以后的数据分析.排查异常问题有很重的作用.今天就分享一个自己基于ka ...

  7. 基于kafka的日志收集

    目录 一.环境准备 Ⅰ.准备好三台虚拟机用于搭建nginx和kafka集群 Ⅱ.配置静态ip地址 Ⅲ.修改主机名 Ⅳ.域名解析 ​编辑 Ⅴ.安装基本软件 Ⅵ.安装时间同步服务 Ⅶ.关闭防火墙 二.ng ...

  8. 部署ELK+Kafka+Filebeat日志收集分析系统

    ELK+Kafka+Filebeat日志系统 文章目录 ELK+Kafka+Filebeat日志系统 1.环境规划 2.部署elasticsearch集群 2.1.配置es-1节点 2.2.配置es- ...

  9. ELK+Kafka分布式日志收集系统环境搭建

    一.ES与kafka环境搭建 1.使用Docker搭建Elasticsearch Docker安装ES 2.使用Docker搭建Kafka,因为这里是演示,所以Kafka没有搭建集群. Docker安 ...

最新文章

  1. c:redirect标签的使用
  2. docker mysql忽视大小写_Docker安装MySQL忽略大小写问题的问题
  3. SQL获取最新版本Version记录
  4. oracle数据库风险链接,数据库的风险主要来源
  5. html语言设计表格,HTML标记语言——表格标记
  6. 关卡设计快速入门_3. 创建一个新关卡
  7. vb6 获得计算机硬件信息_计算机硬件系统由哪几部分组成
  8. 使用JavaScript调用aspx后台代码
  9. web api接口开发实例_小程序开发如何调用 API 接口,以豆瓣电影为例
  10. Intellij IDEA 4种配置热部署的方法【转】【补】
  11. java本地创建zk节点
  12. 不用math type解决word公式上浮问题
  13. vba 循环读取单元格_利用VBA打开顺序文件,并读取
  14. java将dxf展示在网页_七天串起java技术栈-第四天
  15. springboot 打印slf4_SpringBoot里slf4j日志功能的默认实现
  16. linux e1000e 网卡驱动,Ubuntu安装Intel e1000e千兆网卡
  17. android 支付宝手势密码锁,Android仿支付宝手势密码解锁
  18. RuntimeError: Expected object of type torch.cuda.LongTensor but found type torch.cuda.IntTensor
  19. 最近的错误整理(LMY)
  20. 计算机电源直接连接哪两根线才能开机,电脑电源开关线是哪两根

热门文章

  1. 20165313 《Java程序设计》第七周学习总结
  2. linux下redis安装
  3. 基于Azure Blob冷存储的数据压缩备份总结
  4. android键盘弹出,聊天背景不变形
  5. C#来创建和读取XML文档 [转]
  6. .NET6之MiniAPI(二十五):Dapper
  7. Kubernetes:全面了解 Deployment
  8. WPF实现截屏(仿微信)
  9. .NET 6 预览版 7:新功能已完成 ,将专注于改进
  10. .NET 6 新特性 System.Text.Json 中的 Writeable DOM