#copper #real-time #middleware #debugging #log-file

macro cu29-log-derive

This is part of the text logging macros Copper. It cannot be used independently from the copper project.

10 releases (4 breaking)

0.6.0 Jan 21, 2025
0.5.1 Dec 5, 2024
0.4.1 Nov 15, 2024
0.2.1 Jul 29, 2024

#41 in #copper

Download history 141/week @ 2024-10-23 86/week @ 2024-10-30 29/week @ 2024-11-06 170/week @ 2024-11-13 67/week @ 2024-11-20 207/week @ 2024-11-27 310/week @ 2024-12-04 84/week @ 2024-12-11 26/week @ 2024-12-18 19/week @ 2025-01-01 35/week @ 2025-01-08 147/week @ 2025-01-15 85/week @ 2025-01-22 26/week @ 2025-01-29 40/week @ 2025-02-05

299 downloads per month
Used in 33 crates (8 directly)

Apache-2.0

21KB
335 lines

Structured Logging Macros

The cu29_log_derive crate provides macros like !debug to enable structured logging, allowing you to efficiently log data in a binary format.

Example Usage

debug!("This string won't be stored nor interpreted on the robot", myvaluename = 42);

Instead of storing the complete formatted string in a log file, this macro captures a unique identifier for the format string and parameter names, then logs the values in a compact bincode format. This approach significantly improves logging efficiency.

Integration with Copper

If you are using this crate as part of a Copper project, no additional setup is required. The logs will automatically integrate with the Unified Logger (cu29_unifiedlog), storing logs in the binary format.

Standalone Usage

For those using this crate independently of Copper, follow the example setup provided in cu_standalone_structlog to configure your logger.

Extracting Logs

You can extract and view your logs using either Rust or Python:

  • Rust: Refer to the cu29_export module.
  • Python: Use the provided script in readlog.py for Python support.

Dependencies

~4.5–8MB
~145K SLoC