A rust `tracing` compatible framework inspired by log4rs.

Related tags

Utilities trace4rs
Overview

trace4rs

This crate allows users to configure output from tracing in the same way as you would configure the output of log4rs.

Overview

For a usage example see the examples folder or src/test.rs.

Benchmarks & Results

The takeaway is that the actual appenders are roughly equivalent in performance. However, when using the tracing macros vs the log macros the appender performance is roughly 2 orders of magnitude larger. See for yourself with cargo bench --features tracing-macros

You might also like...
Tracing layer to quickly inspect spans and events

tracing-texray First, a word of warning: This is alpha software. Don't run this in prod or anywhere where a panic would ruin your day. tracing-texray

Middlewares and tools to integrate axum + tracing + opentelemetry

axum-tracing-opentelemetry Middlewares and tools to integrate axum + tracing + opentelemetry. Read OpenTelemetry header from incoming request Start a

A convenient tracing config and init lib, with symlinking and local timezone.
A convenient tracing config and init lib, with symlinking and local timezone.

clia-tracing-config A convenient tracing config and init lib, with symlinking and local timezone. Use these formats default, and can be configured: pr

AWS Cloudwatch layer for tracing-subscriber

tracing-cloudwatch tracing-cloudwatch is a custom tracing-subscriber layer that sends your application's tracing events(logs) to AWS CloudWatch Logs.

A crate providing a tracing-subscriber layer for formatting events so Datadog can parse them

Datadog Formatting Layer A crate providing a tracing-subscriber layer for formatting events so Datadog can parse them. Features Provides a layer for t

High-performance QEMU memory and instruction tracing
High-performance QEMU memory and instruction tracing

Cannoli Cannoli is a high-performance tracing engine for qemu-user. It can record a trace of both PCs executed, as well as memory operations. It consi

serde-compatible redis library for Rust

Undis Undis is a serde-compatible redis library for Rust. WIP This project is currently under heavy development. Use it at your own risk. Todo Add #[d

Pure rust implementation of python's random module with compatible generator behaviour.

pyrand Pure rust implementation of (parts of) python's random module with compatible PRNG behaviour: seeding with equivalent values will yield identic

🦸‍♂️ Recast migrates your old extensions to AndroidX, making them compatible with the latest version of Kodular.
🦸‍♂️ Recast migrates your old extensions to AndroidX, making them compatible with the latest version of Kodular.

Recast Recast helps make your old extensions compatible with Kodular Creator version 1.5.0 or above. Prerequisites To use Recast, you need to have Jav

Comments
  • Add a custom serializer for untagged enum unit variants

    Add a custom serializer for untagged enum unit variants

    Untagged enum unit variants always serialize as null: https://github.com/serde-rs/serde/issues/1560

    Therefore, a custom serializer must be implemented in order to create the desired behavior, which is to output the actual unit variant values/names.

    An additional PR has been opened to mention this in the serde documentation: https://github.com/serde-rs/serde-rs.github.io/pull/142

    opened by epompeii 1
  • Fix Schemars `with` for a module

    Fix Schemars `with` for a module

    Our use of the with field for serde breaks schemars as schemars can only handle a type and not a module. So instead of the custom modules simply use String as the type.

    See:

    • https://github.com/GREsau/schemars/issues/89
    • https://github.com/GREsau/schemars/issues/114
    • https://graham.cool/schemars/deriving/attributes/#with
    opened by epompeii 0
  • Logger `Format` as `untagged` in JSON

    Logger `Format` as `untagged` in JSON

    Currently Format is tagged, so Format::Cusom("My Format: {t}: {m}{n}".into()) is serialized as:

    "format": {
        "custom": "My Format: {t}: {m}{n}"
    },
    

    This PR makes Format untagged, so it serializes as:

    "format": "My Format: {t}: {m}{n}",
    
    opened by epompeii 0
Owner
Imperva
Imperva provides complete cyber security by protecting what really matters most—your data and applications—whether on-premises or in the cloud.
Imperva
tracing - a framework for instrumenting Rust programs to collect structured, event-based diagnostic information

tracing-appender Writers for logging events and spans Documentation | Chat Overview tracing is a framework for instrumenting Rust programs to collect

Cris Liao 1 Mar 9, 2022
Error propagation tracing in Rust.

Propagate Error propagation tracing in Rust. Why Propagate? Being able to trace the cause of an error is critical for many types of software written i

Ben Reeves 10 Sep 23, 2021
Emit ETW events in tracing-enabled Rust applications.

tracing-etw Emit ETW events in tracing-enabled Rust applications. This crate depends on rust_win_etw. There are four ETW events. fn NewSpan(span_id: u

Microsoft 11 Aug 10, 2022
Utilities for integrating Datadog with opentelemetry + tracing in rust

Non-official datadog tracing and log correlation for Rust services. This crate contains the necessary glue to bridge the gap between OpenTelemetry, tr

willbank 5 Oct 31, 2023
This crate bridges between gstreamer and tracing ecosystems.

This crate provides a bridge between gstreamer and the tracing ecosystem. The goal is to allow Rust applications utilizing GStreamer to better integra

Standard Cognition OSS 17 Jun 7, 2022
A tracing profiler for the Sega MegaDrive/Genesis

md-profiler, a tracing profiler for the Sega MegaDrive/Genesis This program, meant to be used with this fork of BlastEm, helps you finding bottlenecks

null 15 Nov 3, 2022
A tracing layer for macOS/iOS's `oslog`

tracing_oslog This is a tracing layer for the Apple OS logging framework. Activities are used to handle spans, Example use tracing_oslog::OsLogger; l

Lucy 12 Dec 6, 2022
A patch to fix tracing LocalTime problem.

tracing-local-time A patch to fix tracing LocalTime problem. Tracing-subscriber now has a bug in LocalTime, so build ourselves' to fix it. In this pat

Cris Liao 2 Dec 27, 2021
An example of a fairing for rocket to use tracing (as this pops up at many places in dicussions and questions)

Rocket Tracing Fairing Example This repository aims to give a short example of how you can add a Fairing to your Rocket for tracing and how to use it

Christof Weickhardt 9 Nov 23, 2022
A dynamic binary tracing tool

Backlight Backlight is a dynamic binary tracing tool. Install $ git clone [email protected]:JoshMcguigan/backlight.git $ cd backlight $ cargo install-b

Josh Mcguigan 42 Dec 3, 2022