Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.ditto.live/llms.txt

Use this file to discover all available pages before exploring further.

This content is for SDK V4. For the latest version, see the V5 documentation.
Ditto provides comprehensive logging capabilities to help you monitor, debug, and optimize your applications. The SDK includes a sophisticated logging system with automatic rotation, compression, and configurable retention policies.

Logging Rotation in Ditto

Core System

Ditto uses a custom ditto-rotating-file crate that provides thread-safe rotating file writers with automatic compression.

Rotation Triggers

Files rotate based on two criteria:
  • Size limit: Default 1MB uncompressed (configurable 1MB-1GB)
  • Age limit: Default 24 hours (configurable 1+ hours)

File Management

  • Naming: ditto-logs-YYYY-MM-DD-HH-MM-SS.microseconds.log
  • Compression: Automatic gzip compression when rotated (.log → .log.gz)
  • Retention: Default 15 files maximum (configurable 3-64 files)

Configuration Parameters

ParameterDefaultRangeDescription
rotating_log_file_max_size_mb1MB1MB-1GBSize trigger for rotation
rotating_log_file_max_age_h241+ hoursAge trigger for rotation
rotating_log_file_max_files_on_disk153-64 filesMaximum files to retain

Key Features

  • Multi-threaded compression in background
  • Automatic cleanup of oldest files when limit exceeded
  • Runtime reconfiguration without restart
  • Export functionality for diagnostics
  • Crash recovery - compresses leftover uncompressed files on startup

Integration

  • Uses tracing-subscriber with JSON formatting
  • Always logs at DEBUG level to disk (independent of console level)
  • Filtered to prevent recursive logging from the rotation system itself

Disk Usage

The system maintains approximately ~15MB disk usage by default (15 × 1MB compressed files) and handles rotation completely automatically with robust error recovery.