abumq / residue

Real-time centralized logging server ⚡
Other
34 stars 12 forks source link
centralized-logging cpp-11 logging-server optimization remote-logging residue residue-server rsyslog

banner

Build Status Build Status Version

Overview

Residue is an effort to standardize application logging by implementing simple logging API, making it easily configurable, build-in configurable log rotators, simple way to format your log messages according to need of your application and most of all language-independent.

overview

Details

Logging is an essential part of any application. But not all the applications can store these logs on the same device where they're running. For this reason, the logs must be transferred to a remote system.

Currently, there are two ways to do this:

  1. Collect log messages locally and have a scheduled task to synchronize all the log files to a remote system.
  2. Using real-time message forwarding protocols.

First one has many drawbacks especially when you need to debug a remote application in real-time. Also, transferring files in bulk can be heavy on network and possibly slow.

Second one is what residue client does. It delievers log messages in real-time to the (residue) server.

Residue is fully configurable and supports high-level security, compression and asyncronous operations. It uses Easylogging++ under the hood, that itself is a feature-rich library.

You can choose to integrate similar solutions like rsyslog however residue has a lot of other built-in features that other solutions may lack, like built-in log rotation, bulk message forwarding etc. See Features section for details.

Features

Some of the notable features are listed below

Getting Started

Please see INSTALL.md to get started now.

Compatibility And Integration

No matter what language is your application written in, residue is compatible and can be used as central logging server. All you need is client library. You can either write your own using CLIENT_DEVELOPMENT.md guidelines or use one of the existing ones.

We're also actively working on client libraries for residue in other languages. Please feel free to contribute.

Build Matrix

Branch Platform Build Status
develop GNU/Linux 4.4 / Ubuntu 4.8.4 64-bit / clang++ Build Status
develop GNU/Linux 4.4 / Ubuntu 4.8.4 64-bit / g++-4.9 Build Status
develop GNU/Linux 4.4 / Ubuntu 4.8.4 64-bit / g++-5 Build Status
develop GNU/Linux 4.4 / Ubuntu 4.8.4 64-bit / g++-6 Build Status
develop GNU/Linux 4.4 / Ubuntu 4.8.4 64-bit / g++-7 Build Status
master GNU/Linux 4.4 / Ubuntu 4.8.4 64-bit / clang++ Build Status
master GNU/Linux 4.4 / Ubuntu 4.8.4 64-bit / g++-4.9 Build Status
master GNU/Linux 4.4 / Ubuntu 4.8.4 64-bit / g++-5 Build Status
master GNU/Linux 4.4 / Ubuntu 4.8.4 64-bit / g++-6 Build Status
master GNU/Linux 4.4 / Ubuntu 4.8.4 64-bit / g++-7 Build Status

License

Please see LICENSE for licensing information.