Skip to content

Alukardd/blackhole

 
 

Repository files navigation

Blackhole Build Status Coverage Status

Yet another C++ logging library.

Please visit project site for more information, including design overview, tutorials, examples and library reference.

Blackhole is designed to be flexible configurable and fast. It supports multiply backends and can write into all of them simultaneusely. It allows to change logging process easily without of big coding and even on the fly with the feature of external configuring.

##Features

  • Extremely fast

    Blackhole is designed to be the fastest logger in C++. This includes dark template magic inside, but you are not paying for things you don't use.

  • Highly configurable

    You can configure all: severity levels, filtering, exception handling, formatting and configuration itself. Settings can be specified both in source code and from file of JSON or key/value format. Also you can implement your own initializators.

  • Extendable

    You are not restricted with predefined formatters, sinks, frontends or initializators. If needed, you can even change formatter-sink connectivity interface with the template specialization.

  • Header only

    Again, you are not paying for things you don't use. Don't need syslog sink? Don't include and compile it! But as the result your project compiling time may grow up significantly.

  • Attribute-based

    Every log event contains multiple attributes. For example, typical HTTP event from request contains HTTP code, URL, message string and something else. In Blackhole log attributes is everything. It can be indexed, it can be filtered and it is type-safe.

    By the way, have you heard about Elasticsearch? With the Elasticsearch frontend you can index your logs on the fly and store it there with great support of manipulating, analyzing and monitoring. You also get the Elasticsearch ELK Stack out of the box.

  • Robust and tested

    This project is developed using TDD and CI, so any found bugs is fixed without breaking existed functional.

Platforms and compilers

  • Linux (GCC 4.4+)
  • Mac OS X (clang 3.3+)

Dependencies

  • Boost 1.40+

Packages

No packages published

Languages

  • C++ 97.0%
  • CMake 2.7%
  • Shell 0.3%