番茄日志(TomatoLog)能做什么
可能你是第一次聽說TomatoLog,沒關(guān)系,我可以從頭告訴你,通過了解番茄日志,希望能幫助有需要的朋友,番茄日志處理將大大降低你采集、分析、處理日志的過程。
介紹
TomatoLog 是一個基于 .NETCore 平臺的日志處理組件,包含客戶端、服務(wù)端,非常容易使用和部署。
多客戶端實現(xiàn)
TomatoLog 的客戶端和服務(wù)端目前都是基于 .NETCore 版本,客戶端提供了三種日志流傳輸方式,目前實現(xiàn)了
Redis/RabbitMQ/Kafka流。如果希望使用非 .NETCore 平臺的客戶端,你可以自己開放其它第三方語言的客戶端,通過實現(xiàn) TomatoLog
傳輸協(xié)議,將數(shù)據(jù)傳送到管道(Redis/RabbitMQ/Kafka)中即可。
強(qiáng)大的日志存儲方式
TomatoLog 服務(wù)端還提供了三種存儲日志的方式,分別是 File、MongoDB、Elasticsearch,存儲方式可以通過配置文件指定。在
TomatoLog 服務(wù)端,我們還提供了一個Web 控制臺,通過該控制臺,可以對日志進(jìn)行查詢、搜索,對服務(wù)過濾器進(jìn)行配置,警報配置、通知發(fā)送等等
靈活多樣的日志報警配置
其中,可使用的警報通知方式有:SMS 和 Email 兩種方式,但是,SMS 其本質(zhì)是一個 Http 請求,通過 SMS 的配置,可以實現(xiàn)向所有提供了
Http 接口的網(wǎng)關(guān)發(fā)送通知。
我好累丫
為了開發(fā)支持Kafka,還得學(xué)習(xí)Kafka/Zookeeper,為了使用Kafka-Manager控制臺,還學(xué)習(xí)Scala/sbt編譯雅虎這個破項目,控制臺我就起了四個,不說了,看圖。
TomatoLog-1.0.3 版本
TomatoLogServer 服務(wù)器版本 1.0.3
,主要增加了對Kafka的支持,服務(wù)端做了一些優(yōu)化,在配置上,幾乎沒有改動,只需要在原來的基礎(chǔ)上增加Kafka配置即可
"Kafka": { "Group": "TomatoLogServer", "BootstrapServers": "127.0.0.1:9092",
"Topic": "TomatoLog" }
同時也增加了Kafka客戶端的支持,當(dāng)前版本為:1.0.3
Install-Package TomatoLog.Client.Kafka
使用方式和其它Redis/RabbitMQ客戶端是沒有任何區(qū)別的,主要看下面的 WriteLogAsync() 方法,只要做好了
TomatoLogClientKafka 的配置,剩下的,就是調(diào)用 Exception 的擴(kuò)展方法 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); } }
番茄日志服務(wù)端控制臺長什么樣
首頁看日志列表
日志詳情、彈出查看詳情、日志搜索、支持ES/MongoDB/File搜索
全局日志處理、警報配置
針對單個項目的詳細(xì)日志處理、警報配置
極簡風(fēng)格
不管是從項目結(jié)構(gòu)還是解決方案,我都強(qiáng)調(diào)簡單就是最美的根本要求,解決方案的內(nèi)容雖然看起來很多,但是你也只需要按需引用其中一個客戶端就可以了,服務(wù)端更是如此,全站都打包在一個
.NETCore 的應(yīng)用程序中,程序的警報配置都是存儲在配置文件中的,無需數(shù)據(jù)庫支持。
看到這里,其實完全就可以點贊了。謝謝大家!
別走,我還有幾個開源工具
優(yōu)秀的微服務(wù)網(wǎng)關(guān)Kong的.NETCore中唯一客戶端
https://github.com/lianggx/Kong.Net <https://github.com/lianggx/Kong.Net>
基于.NETCore+PostgreSQL的快速開發(fā)腳手架
https://github.com/lianggx/mystaging <https://github.com/lianggx/mystaging>
Asp.NETCore輕松學(xué)系列的開源實例代碼
https://github.com/lianggx/EasyAspNetCoreDemo
<https://github.com/lianggx/EasyAspNetCoreDemo>
好了,這下我真的沒啥家底了,都抖露給你們看完了。
熱門工具 換一換