Metadata-Version: 2.4
Name: logloglog
Version: 0.0.1
Summary: Efficient scrollback indexing for large log files with terminal word wrapping
Keywords: logging,terminal,scrollback,indexing
Author-email: Gareth Davidson <gaz@bitplane.net>
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: Public Domain
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Operating System :: OS Independent
Classifier: Topic :: System :: Logging
Classifier: Topic :: Terminals
License-File: LICENSE.md
Requires-Dist: wcwidth~=0.2.5
Requires-Dist: platformdirs~=3.0
Requires-Dist: arrayfile~=0.0.1
Requires-Dist: logloglog[textual] ; extra == "dev"
Requires-Dist: pre-commit ; extra == "dev"
Requires-Dist: pytest ; extra == "dev"
Requires-Dist: pytest-asyncio ; extra == "dev"
Requires-Dist: coverage ; extra == "dev"
Requires-Dist: pytest-cov ; extra == "dev"
Requires-Dist: build ; extra == "dev"
Requires-Dist: twine ; extra == "dev"
Requires-Dist: ruff ; extra == "dev"
Requires-Dist: textual ; extra == "textual"
Requires-Dist: textual-window ; extra == "textual"
Provides-Extra: dev
Provides-Extra: textual

# 🪵🪵🪵

![log](log.webp)

> What rolls down stairs, alone or in pairs, and over your neighbor's dog?
> What's great for a snack, And fits on your back?
> It's Log Log Log!

I needed line wrapping in my tty with fast access, so why not make a log that
supports egregious sizes and low seek times?

## ⏩

```bash
# makes log.log.log from /var/log
make log
```

## TODO

- [ ] Textual demo
  - [x] stats in window
  - [ ] slim demo down
  - [x] follow last line when at end
- [x] Async/non-blocking design
  - [x] Make log processing async to avoid blocking
  - [x] Support streaming updates
- [ ] Multiple display backends
- [ ] Python logging integration
  - [ ] Direct logger handlers
  - [ ] Log level filtering and formatting
- [ ] Cache management
  - [ ] Periodic cleanup of cache directories
  - [ ] Check file existence by inode lookup
  - [ ] Handle file rotation and moves


