首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >番茄日志发布1.0.3版本-增加Kafka支持

番茄日志发布1.0.3版本-增加Kafka支持

作者头像
梁规晓
发布2019-08-23 17:59:19
4840
发布2019-08-23 17:59:19
举报
文章被收录于专栏:DotNet程序园DotNet程序园
番茄日志(TomatoLog)能做什么

可能你是第一次听说TomatoLog,没关系,我可以从头告诉你,通过了解番茄日志,希望能帮助有需要的朋友,番茄日志处理将大大降低你采集、分析、处理日志的过程。

介绍

TomatoLog 是一个基于 .NETCore 平台的日志处理组件,包含客户端、服务端,非常容易使用和部署。

多客户端实现

TomatoLog 的客户端和服务端目前都是基于 .NETCore 版本,客户端提供了三种日志流传输方式,目前实现了 Redis/RabbitMQ/Kafka流。如果希望使用非 .NETCore 平台的客户端,你可以自己开放其它第三方语言的客户端,通过实现 TomatoLog 传输协议,将数据传送到管道(Redis/RabbitMQ/Kafka)中即可。

强大的日志存储方式

TomatoLog 服务端还提供了三种存储日志的方式,分别是 File、MongoDB、Elasticsearch,存储方式可以通过配置文件指定。在 TomatoLog 服务端,我们还提供了一个Web 控制台,通过该控制台,可以对日志进行查询、搜索,对服务过滤器进行配置,警报配置、通知发送等等

灵活多样的日志报警配置

其中,可使用的警报通知方式有:SMS 和 Email 两种方式,但是,SMS 其本质是一个 Http 请求,通过 SMS 的配置,可以实现向所有提供了 Http 接口的网关发送通知。

我好累丫

为了开发支持Kafka,还得学习Kafka/Zookeeper,为了使用Kafka-Manager控制台,还学习Scala/sbt编译雅虎这个破项目,控制台我就起了四个,不说了,看图。

TomatoLog-1.0.3 版本

TomatoLogServer 服务器版本 1.0.3 ,主要增加了对Kafka的支持,服务端做了一些优化,在配置上,几乎没有改动,只需要在原来的基础上增加Kafka配置即可

"Kafka": {
        "Group": "TomatoLogServer",
        "BootstrapServers": "127.0.0.1:9092",
        "Topic": "TomatoLog"
      }

同时也增加了Kafka客户端的支持,当前版本为:1.0.3

Install-Package TomatoLog.Client.Kafka

使用方式和其它Redis/RabbitMQ客户端是没有任何区别的,主要看下面的 WriteLogAsync() 方法,只要做好了 TomatoLogClientKafka 的配置,剩下的,就是调用 Exception 的扩展方法 ex.AddTomatoLogAsync()

public class TomatoLogClientKafkaTest
{

    [Fact]
    public async Task WriteLogAsync()
    {
        int i = 0;
        for (; i < 10; i++)
        {
            try
            {
                throw new Exception("Kafka throw exception");
            }
            catch (Exception ex)
            {
                ex.Data["connection"] = "127.0.0.1";
                await ex.AddTomatoLogAsync(1320);
            }
        }
        Assert.Equal(10, i);
    }

    ITomatoLogClient client;
    public TomatoLogClientKafkaTest()
    {
        var options = new EventKafkaOptions
        {
            Logger = null,
            LogLevel = Microsoft.Extensions.Logging.LogLevel.Information,
            ProjectLabel = "20272",
            ProjectName = "TomatoLog",
            SysOptions = new EventSysOptions
            {
                EventId = true,
                IP = true,
                IPList = true,
                MachineName = true,
                ProcessId = true,
                ProcessName = true,
                ThreadId = true,
                Timestamp = true,
                UserName = true
            },
            Tags = null,
            Version = "1.0.1",
            BootstrapServers = "127.0.0.1:9092",
            Topic = "TomatoLog"
        };
        client = new TomatoLogClientKafka(options);
    }
}

番茄日志服务端控制台长什么样

首页看日志列表

日志详情、弹出查看详情、日志搜索、支持ES/MongoDB/File搜索

全局日志处理、警报配置

针对单个项目的详细日志处理、警报配置

极简风格

不管是从项目结构还是解决方案,我都强调简单就是最美的根本要求,解决方案的内容虽然看起来很多,但是你也只需要按需引用其中一个客户端就可以了,服务端更是如此,全站都打包在一个 .NETCore 的应用程序中,程序的警报配置都是存储在配置文件中的,无需数据库支持。

看到这里,其实完全就可以点赞了。谢谢大家!

别走,我还有几个开源工具

优秀的微服务网关Kong的.NETCore中唯一客户端 https://github.com/lianggx/Kong.Net

基于.NETCore+PostgreSQL的快速开发脚手架 https://github.com/lianggx/mystaging

Asp.NETCore轻松学系列的开源实例代码 https://github.com/lianggx/EasyAspNetCoreDemo

好了,这下我真的没啥家底了,都抖露给你们看完了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DotNet程序园 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 多客户端实现
  • 强大的日志存储方式
  • 灵活多样的日志报警配置
  • 我好累丫
  • TomatoLog-1.0.3 版本
  • 番茄日志服务端控制台长什么样
    • 首页看日志列表
      • 日志详情、弹出查看详情、日志搜索、支持ES/MongoDB/File搜索
        • 全局日志处理、警报配置
          • 针对单个项目的详细日志处理、警报配置
          • 极简风格
          • 别走,我还有几个开源工具
          相关产品与服务
          云数据库 Redis
          腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档