Skip to main content

Beautiful local log viewer with thread tracking and real-time updates

Project description

Logler ๐Ÿ”

Beautiful local log viewer with thread tracking and real-time updates

PyPI version PyPI Downloads Python 3.9+ License: MIT Build Status Rust Code style: black Ruff Platform GitHub stars

A modern, feature-rich log viewer that makes debugging a pleasure. View logs in your terminal with beautiful colors, or use logler-web for a modern web interface.

โœจ Features

  • ๐ŸŽจ Beautiful Terminal Output - Rich colors and formatting with thread visualization
  • ๐Ÿงต Thread Tracking - Follow execution flow across log entries
  • ๐Ÿ”— Correlation IDs - Track requests across microservices
  • ๐Ÿ“Š Distributed Tracing - OpenTelemetry span/trace support
  • ๐Ÿ” Smart Filtering - By level, thread, pattern, or correlation ID
  • ๐Ÿ“ Multi-Format Support - JSON, plain text, syslog, and more
  • ๐ŸŽฏ Zero Config - Works out of the box
  • ๐ŸŒ Web UI Available - See logler-web for Vue3 + Naive-UI interface

๐Ÿค– NEW: LLM Investigation Engine

Rust-powered log investigation designed for AI agents - the most LLM-friendly log tool available!

Core Features

  • โšก Blazing Fast - Search 1GB files in <50ms with parallel processing
  • ๐Ÿ” Semantic Search - Find errors by description, not just exact matches
  • ๐Ÿงต Thread Following - Reconstruct request flows across distributed systems
  • ๐ŸŒณ Hierarchy Visualization - Tree and waterfall views of nested operations, bottleneck detection
  • ๐Ÿ’พ SQL Queries - DuckDB-powered custom analysis for deep investigation
  • ๐Ÿ“ˆ Statistical Analysis - Z-scores, percentiles, correlations, anomaly detection
  • ๐ŸŒ OpenTelemetry Export - Export traces to Jaeger, Zipkin, or OTLP collectors
  • ๐ŸŒ Bilingual Docs - Complete documentation in English and Japanese (ๆ—ฅๆœฌ่ชž)

๐Ÿš€ NEW: Advanced LLM Features

Designed specifically for AI agents with limited context windows:

  • ๐Ÿ“‰ Token-Efficient Output - 44x token savings with summary/count/compact modes
  • ๐Ÿ”€ Compare & Diff - Compare successful vs failed requests, before/after deployments
  • ๐ŸŒ Cross-Service Timeline - Unified view across microservices for distributed debugging
  • ๐Ÿ“ Investigation Sessions - Track progress, undo/redo, save/resume investigations
  • ๐ŸŽฏ Smart Sampling - Representative sampling with multiple strategies (diverse, errors-focused, chronological)
  • ๐Ÿ“„ Report Generation - Auto-generate markdown/text/JSON reports from investigation

Public API Contract

Each code block carries a Contract ID (e.g., [C02]). The test suite in tests/test_readme.py executes these snippets against the documented public APIs. When this section changes, the tests must change with it โ€” CI proves the README.

[C02] Token-efficient search

import logler.investigate as investigate

errors = investigate.search(files=["app.log"], level="ERROR", output_format="summary")
# Returns aggregated stats instead of all entries - perfect for limited context windows

[C03] Compare threads

import logler.investigate as investigate

diff = investigate.compare_threads(
    files=["app.log"],
    correlation_a="req-success-123",
    correlation_b="req-failed-456"
)
print(diff['summary'])  # Comparison of two request flows

[C04] Cross-service timeline

import logler.investigate as investigate

timeline = investigate.cross_service_timeline(
    files={"api": ["api.log"], "db": ["db.log"], "cache": ["cache.log"]},
    correlation_id="req-12345"
)
# See request flow: API โ†’ DB โ†’ Cache with latency breakdown

[C05] Investigation sessions

import logler.investigate as investigate

session = investigate.InvestigationSession(files=["app.log"], name="incident_2024")
session.search(level="ERROR")
session.add_note("Database connection pool exhausted")
report = session.generate_report(format="markdown")  # Auto-generate report

[C06] Smart sampling

import logler.investigate as investigate

sample = investigate.smart_sample(
    files=["huge.log"],
    strategy="errors_focused",  # or "diverse", "representative", "chronological"
    sample_size=50
)

[C08] Thread hierarchy

import logler.investigate as investigate

hierarchy = investigate.follow_thread_hierarchy(
    files=["app.log"],
    root_identifier="req-123",
    min_confidence=0.8  # Only show high-confidence relationships
)
# Automatic bottleneck detection
if hierarchy.get('bottleneck'):
    print(f"Bottleneck: {hierarchy['bottleneck']['node_id']} took {hierarchy['bottleneck']['duration_ms']}ms")

[C09] Hierarchy summary

import logler.investigate as investigate

# Using hierarchy from [C08]
summary = investigate.get_hierarchy_summary(hierarchy)
print(summary)  # Shows tree structure, errors, bottlenecks

[C10] Tree visualization

from logler.tree_formatter import print_tree, print_waterfall

# Using hierarchy from [C08]
print_tree(hierarchy, mode="detailed", show_duration=True)
print_waterfall(hierarchy, width=100)  # Waterfall timeline

๐Ÿ“š Complete LLM documentation:

๐Ÿš€ Quick Start

Installation

# Using pip
pip install logler

# Using uv (recommended)
uv pip install logler

Usage

View logs in terminal:

logler view app.log                      # View entire file
logler view app.log -n 100               # Last 100 lines
logler view app.log -f                   # Follow in real-time
logler view app.log --level ERROR        # Filter by level
logler view app.log --grep "timeout"     # Search pattern
logler view app.log --thread worker-1    # Filter by thread

Show statistics:

logler stats app.log             # Show statistics
logler stats app.log --json      # JSON output

Investigate logs with smart analysis:

logler investigate app.log --errors               # Analyze errors
logler investigate app.log --thread worker-1      # Follow specific thread
logler investigate app.log --correlation req-123  # Follow correlation ID
logler investigate app.log --trace trace-abc123   # Follow distributed trace
logler investigate app.log --output summary       # Token-efficient output

# ๐ŸŒณ NEW: Hierarchical Thread Visualization
logler investigate app.log --correlation req-123 --hierarchy         # Show thread hierarchy tree
logler investigate app.log --trace trace-abc123 --hierarchy --waterfall        # Show waterfall timeline
logler investigate app.log --correlation req-123 --hierarchy --flamegraph # Show flamegraph view
logler investigate app.log --hierarchy --show-error-flow             # Analyze error propagation
logler investigate app.log --thread worker-1 --hierarchy --max-depth 3   # Limit hierarchy depth

LLM-first CLI (JSON output by default):

Designed for AI agents - 17 commands with structured JSON output, no truncation.

# Assessment & Overview
logler llm triage app.log --last 1h      # Quick severity assessment
logler llm summarize app.log             # Concise summary with stats
logler llm schema app.log                # Infer log structure

# Discovery
logler llm ids app.log                   # Find all thread/correlation/trace IDs

# Search & Analysis (with filtering)
logler llm search app.log --level ERROR,WARN --tail 20           # Last 20 errors/warnings
logler llm search app.log --exclude-level DEBUG --service api    # Filter by service
logler llm search app.log --exclude-query "health" --max-bytes 4000  # Budget-controlled
logler llm sql "SELECT level, COUNT(*) FROM logs GROUP BY level" -f app.log

# Request Tracing
logler llm correlate req-123 --files "*.log"   # Follow correlation ID
logler llm hierarchy trace-xyz --files "*.log"  # Build hierarchy tree
logler llm bottleneck trace-xyz --files "*.log" # Find slow operations

# Comparison
logler llm compare req-fail req-success --files "*.log"  # Compare requests
logler llm diff app.log --baseline 1h                    # Before/after analysis

# Utilities
logler llm sample app.log --strategy errors_focused --size 50
logler llm context app.log 1523 --before 10 --after 10
logler llm export trace-xyz --format jaeger

See LLM CLI Reference for complete documentation of all 17 commands.

Visualization Modes

Tree View - Shows parent-child relationships:

๐Ÿงต api-gateway (req-001, 520ms)
โ”œโ”€ ๐Ÿ”น auth-service (45ms)
โ”‚  โ”œโ”€ ๐Ÿ”ธ jwt-validate (5ms)
โ”‚  โ””โ”€ ๐Ÿ”ธ user-lookup (25ms)
โ”œโ”€ ๐Ÿ”น product-service (450ms) โš ๏ธ SLOW
โ”‚  โ”œโ”€ ๐Ÿ”ธ inventory-check (340ms)
โ”‚  โ”‚  โ””โ”€ ๐Ÿ”ธ db-query (300ms) โš ๏ธ
โ”‚  โ””โ”€ ๐Ÿ”ธ cache-update (45ms) โŒ ERROR
โ””โ”€ ๐Ÿ”น response-assembly (10ms)

Waterfall View (--waterfall) - Shows temporal overlap:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Timeline: req-001 (520ms)                                            โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ api-gateway          โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ  520ms โ”‚
โ”‚   โ”œโ”€ auth-service    โ–ˆโ–ˆโ–ˆโ–ˆ                                      45ms โ”‚
โ”‚   โ”œโ”€ product-service      โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ    450ms โ”‚
โ”‚   โ”‚  โ”œโ”€ inventory              โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ         340ms โ”‚
โ”‚   โ”‚  โ””โ”€ cache-update                              โ–ˆโ–ˆโ–ˆโ–ˆโŒ        45ms โ”‚
โ”‚   โ””โ”€ response                                          โ–ˆโ–ˆ      10ms โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Flamegraph View (--flamegraph) - Shows time distribution:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ api-gateway (520ms)                                                โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ auth (45) โ”‚ product-service (450ms)                         โš      โ”‚
โ”‚           โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚           โ”‚ inventory-check (340ms)     โ”‚ cache-update (45ms) โŒ   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Error Flow (--show-error-flow) - Traces error propagation:

๐Ÿ” Error Flow Analysis

Root Cause:
  โŒ cache-update failed at 10:00:00.450Z
  Error: Redis connection refused
  Path: api-gateway โ†’ product-service โ†’ cache-update

Impact: 3 nodes affected, request degraded
Recommendation: Check Redis connectivity

Watch for new files:

logler watch "*.log"             # Watch for new log files
logler watch "app-*.log" -d /var/log    # Specific directory

๐Ÿ“ธ Screenshots

Terminal

Rich, colorful terminal output:

  • ๐ŸŒˆ Color-coded log levels
  • ๐Ÿงต Thread badges
  • ๐Ÿ”— Correlation ID tracking
  • ๐Ÿ“ˆ Thread timelines

Web Interface

For a modern web UI, see logler-web - Vue3 + Naive-UI with real-time updates.

๐ŸŽฏ Examples

Terminal Viewing

# Basic viewing
logler view app.log

# Follow with filters
logler view app.log -f --level ERROR --grep "database"

# Multiple files
logler view app.log error.log -n 50

# Beautiful thread view
logler view app.log --thread worker-1

Statistics

# Human-readable stats
logler stats app.log

# JSON for scripting
logler stats app.log --json | jq '.by_level'

Investigation & Analysis

# Analyze errors with context
logler investigate app.log --errors
# Shows error frequency, top error messages, time ranges

# Follow a specific thread or request
logler investigate app.log --thread worker-1
logler investigate app.log --correlation req-abc123
logler investigate app.log --trace trace-xyz789

# Build hierarchy tree with bottleneck detection
logler investigate app.log --correlation req-123 --hierarchy

# Token-efficient output for LLMs
logler investigate app.log --errors --output summary
# Returns aggregated statistics instead of full logs

# JSON output for automation
logler investigate app.log --errors --json

๐ŸŽจ Log Format Support

Logler automatically detects and parses:

JSON Logs:

{
  "timestamp": "2024-01-15T10:00:00Z",
  "level": "INFO",
  "message": "User logged in",
  "thread_id": "worker-1",
  "correlation_id": "req-123",
  "trace_id": "abc123",
  "span_id": "span-001"
}

Plain Text:

2024-01-15 10:00:00 INFO [worker-1] [req-123] User logged in
2024-01-15 10:00:01 ERROR [worker-2] Database timeout trace_id=abc123

With Thread Tracking:

2024-01-15 10:00:00 INFO [worker-1] Request started
2024-01-15 10:00:01 DEBUG [worker-1] Processing...
2024-01-15 10:00:02 INFO [worker-1] Request completed

Logler groups these together and shows the complete thread timeline!

๐ŸŽฏ Perfect Log Format for Maximum Features

To unlock all of logler's capabilities (especially multi-level thread hierarchy), use this format:

JSON (Recommended):

{
  "timestamp": "2024-01-15T10:00:00.123Z",
  "level": "INFO",
  "message": "Processing user request",
  "thread_id": "worker-1",
  "correlation_id": "req-abc123",
  "trace_id": "trace-xyz789",
  "span_id": "span-001",
  "parent_span_id": "span-000"
}

Field Guide:

Field Purpose Enables
timestamp When the event occurred (ISO 8601) Timeline, duration analysis
level Log level (DEBUG/INFO/WARN/ERROR/FATAL) Filtering, error detection
message Human-readable description Search, filtering
thread_id Thread/worker identifier Thread grouping, timeline
correlation_id Request ID across services Cross-service tracing
trace_id Distributed trace identifier OpenTelemetry integration
span_id Unique operation identifier Hierarchy building
parent_span_id Parent operation's span_id Multi-level hierarchy trees

Why parent_span_id matters:

Without it, logler infers hierarchy from naming patterns (worker-1.task-a) or temporal proximity. With explicit parent_span_id, you get:

  • 100% accurate parent-child relationships
  • Deep hierarchy trees (not just 1-2 levels)
  • Precise bottleneck detection
  • Accurate error propagation tracing

Plain Text Alternative:

2024-01-15T10:00:00.123Z INFO [worker-1] [req-abc123] [trace:xyz789] [span:001] [parent:000] Processing user request

Logler will parse bracketed fields automatically. Use consistent formatting across your application.

๐Ÿงต Thread Tracking

Logler automatically tracks threads and shows:

  • ๐Ÿ“Š Log count per thread
  • โŒ Error count per thread
  • โฑ๏ธ Thread duration
  • ๐Ÿ”— Associated correlation IDs
  • ๐Ÿ“ˆ Thread timeline

Example:

logler view app.log --thread worker-1

Filter logs by thread to trace execution flow.

๐Ÿ”— Correlation & Tracing

Track requests across services:

# Follow a specific correlation ID
logler investigate app.log --correlation req-12345

# Follow a distributed trace ID
logler investigate app.log --trace trace-xyz789

# View across multiple service logs
logler view app.log service.log --grep "req-12345"

โš™๏ธ Configuration

Logler works with zero configuration, but you can customize:

# View options
logler view app.log --no-color    # Disable colors
logler view app.log -n 1000       # Show more lines

๐Ÿ› ๏ธ Development

# Clone repository
git clone https://github.com/gabu-quest/logler.git
cd logler

# Install in development mode
pip install -e ".[dev]"

# Run tests
pytest

# Format code
black logler
ruff check logler

๐Ÿ“ฆ What's Included

  • logler - Main CLI command
  • Rich Terminal UI - Beautiful colored output
  • Thread Tracker - Correlation and grouping
  • Smart Parser - Multi-format support
  • File Watcher - Monitor for new files
  • LLM Investigation Engine - Rust-powered analysis for AI agents

For web UI, see logler-web.

๐Ÿค Contributing

Contributions welcome! Please feel free to submit a Pull Request.

๐Ÿ“„ License

MIT License - see LICENSE file for details.

๐Ÿ™ Acknowledgments

Built with:

  • Rich - Beautiful terminal output
  • Click - CLI framework
  • DuckDB - SQL analytics
  • PyO3 - Rust/Python bindings

๐Ÿ’ก Pro Tips

  1. Use --follow mode for real-time debugging
  2. Filter by thread to trace execution flow
  3. Use --hierarchy to visualize request flow with bottleneck detection
  4. Export stats as JSON for automation
  5. Watch directories for new log files

๐ŸŽ“ Interactive Tours

Learn logler hands-on with marimo notebook tours. Each tour is self-contained with sample data -- no external files needed.

# Run any tour in your browser
uv run marimo edit examples/tours/tour_01_fundamentals.py
Tour Topic
01 Fundamentals -- search, filter, output formats
02 Thread Tracking -- grouping, correlation IDs
03 Hierarchy -- tree views, waterfall, bottleneck detection
04 Investigation -- sessions, history, report generation
06 Flamegraph -- performance visualization
07 Error Flow -- root cause analysis, propagation chains
08 Comparison -- diff hierarchies, compare threads
09 Tracing Exports -- Jaeger and Zipkin formats
10 Sampling -- smart sampling strategies
12 Multi-File -- cross-service distributed tracing
13 Live Watching -- real-time tailing and streaming
14 Performance -- 10K+ entries, benchmarks

See the examples README for the full learning path.

๐ŸŽ“ Examples

Debug a specific request

# Find correlation ID
logler view app.log --grep "req-12345"

# Follow that request across services
logler view app.log service.log --grep "req-12345"

Monitor errors in real-time

logler view app.log -f --level ERROR

Analyze thread behavior

logler view app.log --thread worker-1

Build request hierarchy

logler investigate app.log --correlation req-123 --hierarchy
# Visualize request flow with bottleneck detection

Made with โค๏ธ for developers who love beautiful tools

For a web interface, check out logler-web

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

logler-1.2.0.tar.gz (134.0 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

logler-1.2.0-cp311-cp311-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.11Windows x86-64

logler-1.2.0-cp311-cp311-manylinux_2_34_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

logler-1.2.0-cp311-cp311-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

logler-1.2.0-cp311-cp311-macosx_10_12_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

File details

Details for the file logler-1.2.0.tar.gz.

File metadata

  • Download URL: logler-1.2.0.tar.gz
  • Upload date:
  • Size: 134.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for logler-1.2.0.tar.gz
Algorithm Hash digest
SHA256 bce316a566315f248c682cf2a0d86b4202f9b6fdc870ebe0857689699cc34c08
MD5 6e7683d1868dd837132fb368c1c73233
BLAKE2b-256 2a7a8c91196f9c020f94c79439f1ddabe4018c1b8fe99bfa551603d5f4fbc1ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for logler-1.2.0.tar.gz:

Publisher: pypi.yml on gabu-quest/logler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file logler-1.2.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: logler-1.2.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for logler-1.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b98f2dee30bb14bfb3d3ded6a31d6a6ee0976e514bc1c30adffd67c1303a8445
MD5 a270a83201dba545e8aab81a9c3a0930
BLAKE2b-256 bbafd9c8621b68a473b0ae2b2bd02dc527391dec942c4d1e6bce4ea30fa714f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for logler-1.2.0-cp311-cp311-win_amd64.whl:

Publisher: pypi.yml on gabu-quest/logler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file logler-1.2.0-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for logler-1.2.0-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 35ad41210562939cae4c0f3f93a34e59e9086ce473645b2bc8fc63e826baa779
MD5 eb012de6bf0df1f5a3158434ed941945
BLAKE2b-256 fcd0068705c5ebe32aa937fa1a2976552b570afcb8c1732a184f74c7a487ac11

See more details on using hashes here.

Provenance

The following attestation bundles were made for logler-1.2.0-cp311-cp311-manylinux_2_34_x86_64.whl:

Publisher: pypi.yml on gabu-quest/logler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file logler-1.2.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for logler-1.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a964546f48681344848ce91ebc97a109d23e9f025d5f9a972145f422065bbab5
MD5 1818363275c6888dca07f162e39fe66d
BLAKE2b-256 25255c63bc5dda30cec387b390ef373f3b8983dde0466a1f4b5d36c2817608ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for logler-1.2.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: pypi.yml on gabu-quest/logler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file logler-1.2.0-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for logler-1.2.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 689f4944bf319fbe4691ab408f4f5b1f4cc4b3b3d25f2cedd6a6e7a897c99b2d
MD5 4db26477b09b1c5de1cc50c989cce0e5
BLAKE2b-256 53dac3c0ef8dfed14d9893e607034ff90b093e43899da30e9e01cc5459c71aa1

See more details on using hashes here.

Provenance

The following attestation bundles were made for logler-1.2.0-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: pypi.yml on gabu-quest/logler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page