.NET Core使用NLog通过Kafka实现日志收集
一、前言
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实现日志收集的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: asp.net core 外部认证多站点
- 下一篇: ASP.NET Core 中的 ORM