番茄日志(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

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

番茄日志发布1.0.3版本-增加Kafka支持的更多相关文章

  1. 发布日志 - kratos v2.0.4 版本发布

    V2.0.4 Release Release v2.0.4 · go-kratos/kratos (github.com) 新的功能 proto-gen-http 工具在生产代码时如果 POST/PU ...

  2. 发布日志 - kratos v2.0.5 版本发布

    V2.0.5 Release Release v2.0.5 · go-kratos/kratos (github.com) 修复问题 proto errors when swagger api imp ...

  3. Linq to Objects for Java 发布 1.0.1 版本

    现在 java 支持 linq 啦.比原生 stream api 更好用,功能更强大.现已发布 version 1.0.1 地址: https://github.com/timandy/linq. A ...

  4. Python开发工具Wing IDE发布5.0.1版本

    Wing IDE是一个跨平台的Python IDE,提供了一个专业代码编辑.自动编辑.自动完成.重构.强大的图形调试器.版本控制.单位测试.搜索及其他功能.目前已经成为最全面.最综合.最先进的智能化P ...

  5. wampserver2.2e-php5.3.13 版本 增加 php7 支持

    公司需要升级PHP版本至PHP7,对于用惯了wamp的来说,添加一下PHP扩展应该是很容易的,看我以前的文章(WampServer自己DIY添加apache.php.mysql版本). 不过再配置的当 ...

  6. [0] 解决版本冲突-使用SVN主干与分支功能

    解决版本冲突-使用SVN主干与分支功能 1  前言 大多数产品开发存在这样一个生命周期:编码.测试.发布,然后不断重复.通常是这样的开发步骤: 1)    开发人员开发完毕某一版本(如版本A)功能后, ...

  7. 【大数据】Linux下Storm(0.9版本以上)的环境配置和小Demo

    一.引言: 在storm发布到0.9.x以后,配置storm将会变得简单很多,也就是只需要配置zookeeper和storm即可,而不再需要配置zeromq和jzmq,由于网上面的storm配置绝大部 ...

  8. React Native 0.50版本新功能简介

    React Native在2017年经历了众多版本的迭代,从接触的0.29版本开始,到前不久发布的0.52版本,React Native作为目前最受欢迎的移动跨平台方案.虽然,目前存在着很多的功能和性 ...

  9. Tapdata Cloud 版本上新 | 支持通知自配置,支持GP、MQ数据源,界面更友好!

    Tapdata Cloud https://cloud.tapdata.net Tapdata Cloud 是国内首家异构数据库实时同步云平台,目前支持Oracle.MySQL.PG.SQL Serv ...

随机推荐

  1. 2017-10271weblogic漏洞exp测试及补丁测试

    靶机:weblogic12.1.3.0 战斗机:kali 导弹:burpsuite 1.首先开启kali某端口监听 2.向靶机发送exp 3.查看kali监听 打码保平安~~ 4.打上补丁 5.验证补 ...

  2. HAproxy+Keepalived实现高可用

    HAproxy+Keepalived实现高可用 说明: HA1:HAproxy+Keepalived(master) HA2:HAproxy+Keepalived(backup) 1.HA1上keep ...

  3. c实现生产者消费者问题。 windows下。

    #include <stdio.h>#include <windows.h> #define P(S) WaitForSingleObject(S,INFINITE)//定义W ...

  4. Docker 工作原理及容器化简易指南

    Docker 非常棒! 它使软件开发者无需担心配置和依赖性,在任何地方打包,发送和运行他们的应用程序.而在与 Kubernetes 相结合后,它使应用集群部署和管理变得更方便.这使得 Docker 深 ...

  5. mysql8.0的连接写法

    由于mysql8.0的新特新,所以Driver要写成“com.mysql.cj.jdbc.Driver” url:"jdbc:mysql://host_address:3306/db_nam ...

  6. Mysql优化(出自官方文档) - 第三篇

    目录 Mysql优化(出自官方文档) - 第三篇 1 Multi-Range Read Optimization(MRR) 2 Block Nested-Loop(BNL) and Batched K ...

  7. webstorm mac 版破解

    一.打开终端,输入: sudo vim /etc/hosts 回车后输入密码,编辑 hosts 文件,如图: 二.进入编辑模式(按 i 键),在最后一行添加如下代码: 0.0.0.0 account. ...

  8. python中的元类(metaclass)

    认识python中元类的准备工作. 1,首先需要明白一个概念就是python中一切皆为对象. input: class Trick(object): pass ') print type(1234) ...

  9. java练习---12

    public class L1106 { public static void main(String[] args) { // TODO Auto-generated method stub Tes ...

  10. 1.4.1python下载网页(每天一更)

    # -*- coding: utf-8 -*- ''' Created on 2019年4月27日 @author: lenovo ''' # import urllib3 # def downloa ...