Giter Club home page Giter Club logo

tomatolog's Introduction

TomatoLog

TomatoLog is a service which based on the .net Core platform.

中文文档

The TomatoLog is a middleware that includes both client and server. So it is very easy to be used and deployed.

The client and server of TomatoLog are both built on the .net Core. Client logging data can be transferred through 3 kinds of streaming: Redis Streaming, RabbitMQ Streaming, and Kafka Streaming (which will be supported later). For the applications which not built-on .net core, you can transfer the logging data to the pipeline of Redis/RabbitMQ, by implementing the TomatoLog transferring protocol.

The TomatoLog Server can store the logging data into File, MongoDB, or Elastic Search. This can be set through the configuration file. The TomatoLog Server provides a Web Console, which we can inquiry or search the logging data, or maintain the server filters/alter setting/notification setting. The notifications can be sent through SMS or email. Since the SMS messages are sent through HTTP request, so by using the different SMS HTTP request settings, we can send the notifications to the gateways which receiving messages through HTTP requests.

TomatoLog System Architecture

foundation

Get Started

Using the client side

Choose to install either of the following two clients

Install-Package TomatoLog.Client.Redis
Install-Package TomatoLog.Client.RabbitMQ

Setup the server side

download the server-side compressed package file TomatoLog (which only contains the project files),You also need to install the .net core SDK 2.2+ in the hosting environment.

  1. Extract the file, edit the appsetting.Environment.json file for the server side configurations, then deploy the configured server to your hosting environment. , TomatoLog can be hosted by IIS or other non-IIS Web Servers. The default port for the server is 20272.

Editing server configuration file

{
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Debug",
      "System": "Information",
      "Microsoft": "Information"
    }
  },
  "TomatoLog": {
    "Cache-Redis": null, // the strategy for the distribution buffering policy for the filter
    "Config": {
      "SysConfig": "Config/SysConfig.json" // the system configuration file, which can be configured through Web Console
    },
    "Storage": {
      "Type": "ToFile", //ToFile/ToES/ToMongoDB 
      "File": "D:\\TomatoLog\\Storage", // If ToFile is selected, need to specify the absolution path at here
      "ES": "http://127.0.0.1:9200/", // if ToES is selected, need to specify the URL for the Elastic Search server at here 
      "MongoDB": "mongodb://root:[email protected]:27017/admin" // if ToMongoDB is selected, need to specify the connection string for MongoDB at here 
    },
    "Flow": {
      "Type": "RabbitMQ", // Redis/RabbitMQ/Kafaka  // the transferring protocol, which should be matched at both server & client
      "Redis": {
        "Connection": null,
        "Channel": "TomatoLogChannel"
      },
      "RabbitMQ": { // if using RibbitMQ at above, the node need to be configured
        "Host": "127.0.0.1",
        "Port": 5672,
        "UserName": "root",
        "Password": "123456",
        "vHost": "TomatoLog",
        "Exchange": "TomatoLog-Exchange",
        "ExchangeType": "direct",
        "QueueName": "TomatoLog-Queue",
        "RouteKey": "All",
        "Channels": 1 // the number of instances of message queue
      },
      "Kafka": null // under construction
    }
  }
}

tomatolog's People

Contributors

lianggx avatar

Watchers

James Cloos avatar .Net Lover avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.