Skip to content

Releases: lance0/logsynth

v0.3.1

Choose a tag to compare

@lance0 lance0 released this 21 Dec 23:52

Release notes for v0.3.1:

──────────────────────────────────────────

LogSynth v0.3.1

Fixed
• TUI dashboard now updates properly during parallel stream execution
• Dashboard display no longer prints multiple copies (uses NullSink to prevent stdout interference)
• CLI tests fixed for ANSI escape code handling in CI environments

v0.2.1

Choose a tag to compare

@lance0 lance0 released this 05 Dec 19:44

v0.2.1 - HTTP Output Sink

Added

HTTP Output Sink - POST logs to HTTP/HTTPS endpoints with enterprise-ready features:

  • Batching: Configurable batch size and flush timeout
  • Retries: Exponential backoff on 5xx, 429, and connection errors
  • Formats: JSON array, NDJSON, or plain text
  • Headers: --header / -H CLI option for custom headers (auth tokens, etc.)
  • Dead-letter: Failed batches saved to JSONL file for debugging/replay

URL Configuration:

Basic

logsynth run nginx --output http://localhost:8080/logs

With parameters

logsynth run nginx --output "http://localhost:8080/logs?batch=50&timeout=10&format=ndjson"

With auth header

logsynth run nginx --output http://localhost:8080/logs -H "Authorization: Bearer token"

URL Parameters:

Parameter Default Description
batch 100 Batch size before flush
timeout 5 Seconds before timeout flush
format json json, ndjson, or text
retries 3 Max retry attempts

Stats

  • 29 new tests (135 total)
  • Full test coverage for batching, retry logic, and dead-letter functionality

LogSynth v0.2.0

Choose a tag to compare

@lance0 lance0 released this 05 Dec 19:13

LogSynth v0.2.0

New Features

  • Per-stream rate configuration - Control rates independently when running multiple streams
    logsynth run nginx redis --stream nginx:rate=100 --stream redis:rate=20 --duration 5m
    
  • Jinja2 templating - Use {{ field }} and {% if %} syntax for complex patterns (auto-detected)
    pattern: |
    {% if level == "ERROR" %}ALERT {% endif %}{{ ts }} {{ level }}: {{ message }}
  • Conditional field generation - Generate fields only when conditions are met
    error_code:
    type: int
    when: "level == 'ERROR'"
  • Configuration profiles - Save and reuse settings
    logsynth profiles create high-volume --rate 1000 --format json
    logsynth run nginx --profile high-volume
  • Plugin system - Extend with custom field types in ~/.config/logsynth/plugins/

Improvements

  • Docker support with multi-stage build
  • 24 new CLI integration tests (106 total)
  • Example templates for all new features
  • Comprehensive documentation updates

Full Changelog

Added

  • --stream option for per-stream rate/format configuration
  • --profile option to apply saved configuration profiles
  • when: clause for conditional field generation
  • Jinja2 template auto-detection and rendering
  • Plugin loading from ~/.config/logsynth/plugins/
  • logsynth profiles subcommands (list, show, create)
  • Dockerfile and .dockerignore
  • Examples directory with templates, plugins, and profiles
  • GitHub Actions CI/CD workflows
  • Pre-commit hooks configuration
  • CONTRIBUTING.md