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
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:
- LLM CLI Reference - All 17 CLI commands for AI agents
- Python API Guide - Library API and examples
- API Reference - All investigation functions
- ๆฅๆฌ่ชใฌใคใ - ๅฎๅ จใชใใญใฅใกใณใ
- Examples - Production incident investigations
๐ 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
- Use
--followmode for real-time debugging - Filter by thread to trace execution flow
- Use
--hierarchyto visualize request flow with bottleneck detection - Export stats as JSON for automation
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bce316a566315f248c682cf2a0d86b4202f9b6fdc870ebe0857689699cc34c08
|
|
| MD5 |
6e7683d1868dd837132fb368c1c73233
|
|
| BLAKE2b-256 |
2a7a8c91196f9c020f94c79439f1ddabe4018c1b8fe99bfa551603d5f4fbc1ce
|
Provenance
The following attestation bundles were made for logler-1.2.0.tar.gz:
Publisher:
pypi.yml on gabu-quest/logler
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
logler-1.2.0.tar.gz -
Subject digest:
bce316a566315f248c682cf2a0d86b4202f9b6fdc870ebe0857689699cc34c08 - Sigstore transparency entry: 908205323
- Sigstore integration time:
-
Permalink:
gabu-quest/logler@01017f3b2086cb6ca7b84da28a42ee6080a016fb -
Branch / Tag:
refs/tags/v1.2.0 - Owner: https://github.com/gabu-quest
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@01017f3b2086cb6ca7b84da28a42ee6080a016fb -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b98f2dee30bb14bfb3d3ded6a31d6a6ee0976e514bc1c30adffd67c1303a8445
|
|
| MD5 |
a270a83201dba545e8aab81a9c3a0930
|
|
| BLAKE2b-256 |
bbafd9c8621b68a473b0ae2b2bd02dc527391dec942c4d1e6bce4ea30fa714f7
|
Provenance
The following attestation bundles were made for logler-1.2.0-cp311-cp311-win_amd64.whl:
Publisher:
pypi.yml on gabu-quest/logler
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
logler-1.2.0-cp311-cp311-win_amd64.whl -
Subject digest:
b98f2dee30bb14bfb3d3ded6a31d6a6ee0976e514bc1c30adffd67c1303a8445 - Sigstore transparency entry: 908205343
- Sigstore integration time:
-
Permalink:
gabu-quest/logler@01017f3b2086cb6ca7b84da28a42ee6080a016fb -
Branch / Tag:
refs/tags/v1.2.0 - Owner: https://github.com/gabu-quest
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@01017f3b2086cb6ca7b84da28a42ee6080a016fb -
Trigger Event:
push
-
Statement type:
File details
Details for the file logler-1.2.0-cp311-cp311-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: logler-1.2.0-cp311-cp311-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 1.5 MB
- Tags: CPython 3.11, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
35ad41210562939cae4c0f3f93a34e59e9086ce473645b2bc8fc63e826baa779
|
|
| MD5 |
eb012de6bf0df1f5a3158434ed941945
|
|
| BLAKE2b-256 |
fcd0068705c5ebe32aa937fa1a2976552b570afcb8c1732a184f74c7a487ac11
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
logler-1.2.0-cp311-cp311-manylinux_2_34_x86_64.whl -
Subject digest:
35ad41210562939cae4c0f3f93a34e59e9086ce473645b2bc8fc63e826baa779 - Sigstore transparency entry: 908205358
- Sigstore integration time:
-
Permalink:
gabu-quest/logler@01017f3b2086cb6ca7b84da28a42ee6080a016fb -
Branch / Tag:
refs/tags/v1.2.0 - Owner: https://github.com/gabu-quest
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@01017f3b2086cb6ca7b84da28a42ee6080a016fb -
Trigger Event:
push
-
Statement type:
File details
Details for the file logler-1.2.0-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: logler-1.2.0-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a964546f48681344848ce91ebc97a109d23e9f025d5f9a972145f422065bbab5
|
|
| MD5 |
1818363275c6888dca07f162e39fe66d
|
|
| BLAKE2b-256 |
25255c63bc5dda30cec387b390ef373f3b8983dde0466a1f4b5d36c2817608ef
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
logler-1.2.0-cp311-cp311-macosx_11_0_arm64.whl -
Subject digest:
a964546f48681344848ce91ebc97a109d23e9f025d5f9a972145f422065bbab5 - Sigstore transparency entry: 908205334
- Sigstore integration time:
-
Permalink:
gabu-quest/logler@01017f3b2086cb6ca7b84da28a42ee6080a016fb -
Branch / Tag:
refs/tags/v1.2.0 - Owner: https://github.com/gabu-quest
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@01017f3b2086cb6ca7b84da28a42ee6080a016fb -
Trigger Event:
push
-
Statement type:
File details
Details for the file logler-1.2.0-cp311-cp311-macosx_10_12_x86_64.whl.
File metadata
- Download URL: logler-1.2.0-cp311-cp311-macosx_10_12_x86_64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.11, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
689f4944bf319fbe4691ab408f4f5b1f4cc4b3b3d25f2cedd6a6e7a897c99b2d
|
|
| MD5 |
4db26477b09b1c5de1cc50c989cce0e5
|
|
| BLAKE2b-256 |
53dac3c0ef8dfed14d9893e607034ff90b093e43899da30e9e01cc5459c71aa1
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
logler-1.2.0-cp311-cp311-macosx_10_12_x86_64.whl -
Subject digest:
689f4944bf319fbe4691ab408f4f5b1f4cc4b3b3d25f2cedd6a6e7a897c99b2d - Sigstore transparency entry: 908205346
- Sigstore integration time:
-
Permalink:
gabu-quest/logler@01017f3b2086cb6ca7b84da28a42ee6080a016fb -
Branch / Tag:
refs/tags/v1.2.0 - Owner: https://github.com/gabu-quest
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@01017f3b2086cb6ca7b84da28a42ee6080a016fb -
Trigger Event:
push
-
Statement type: