Tarolog
Library for flexible configuration of tarantool logs. Allows you to set your own log format or choose from builtin formats. Supports "data injectors" for enrichment log records with any data (e.g. instance-id or request-id). All formats are applying to tarantool internal logs as well.
Builtin formats
- JsonRaw - json logs. This format is as close as possible to an original tarantool 'json' format.
- Json - json logs, use
serdelibrary for a log record generation. - Plain - plain text. This format is as close as possible to an original tarantool 'plain' format.
Also, you can implement your own format.
Benchmark
| generate file size (lines per sec) bigger is better | generated stdout output (mb per sec) bigger is better | |
|---|---|---|
| tarantool-json | 144135 | 49,675 |
| tarolog-json | 203785 | 82 |
| tarolog-json-serde | 188217 | 70,25 |
| tarantool-plain | 210876 | 29,475 |
| tarolog-plain | 231691 | 29,95 |
See a "bench" package for familiarize with benchmark process.
Example
In this example we use json format with injectors that propagate two fields:
- key: "additional data", value: true
- key: "request_id", value: {request id extracted from fiber local storage}
use tarolog;
use Format;
use tarantool;
use ffi;
use HashMap;
use info;
Tests
tarantool-test is required.
Run unit tests
cargo test
Run integration tests
cargo build; tarantool-test -p ./target/debug/libtests.so -- -i tests/test_init.lua
All tests
make test