|
Old-school logging for stylish Python devs. Use |
|
Geezer is a tiny Python logging helper that makes print-style debugging stylish, readable, and safe for dev environments.
Perfect for:
- Teaching or explaining complex code
- Debugging step-by-step logic
- Visual learners or neurodivergent-friendly workflows
- Looking good in the terminal 😎
It hides noise in production — unless you say otherwise.
Note: Geezer is purely a developer print helper, not a full logging framework. You won't find sinks, handlers, or JSON adapters here—just simple, explicit tools to help you track what your code is doing.
Geezer looks best in terminals that support:
- UTF-8 (for emoji output)
- ANSI colors (used by
rich)
✅ Recommended:
- Windows Terminal
- macOS Terminal or iTerm2
- Any modern Linux terminal
pip install geezer📦 PyPI: https://pypi.org/project/geezer/
from geezer import log, warn
log("Booting system", emoji="⚙️", label="startup")from geezer import log as prnt
prnt("Loading NIBBLES.BAS", emoji="🐍", label="games")warn("No config file found", label="config check")log("Launching rockets", emoji="🚀", label="deployment")
log("Inventory loaded", emoji="📦", label="warehouse")
log("Shields down! Taking damage!", emoji="💥", label="defense")
log("Poop scooped successfully", emoji="💩", label="can-doo")Just like print(), you can log variables — but you must use an f-string or string concatenation to include dynamic content.
snake_count = 3
log(f"User has {snake_count} snakes left", emoji="🐍", label="reptile-room")user = "ben"
count = 7
log(f"{user} collected {count} tickets", emoji="🎟️", label="cinema")log("User has", emoji="🐍", label=snake_count) # ❌ This won't work like you expectlog("Connecting to mothership", emoji="🛸", label="api")
log("New customer signed up", emoji="🧍", label="user event")
log("Refresh token expired", emoji="⏳", label="auth")
log("Cache hit for homepage", emoji="🧠", label="performance")
log("Dark mode enabled", emoji="🌚", label="settings")
log("New dog uploaded to gallery", emoji="🐶", label="media")
log("Geezer initialized and logging like a pro", emoji="🧓", label="geezer-core")
log("New deal created", emoji="🛒", label="deal")[🛒 checkout] Starting checkout for user 42
[✅ card validation] Card info validated
[🔌 payment gateway] Calling Fortis API...
[💰 payment] Transaction approved for $49.99
[➡️ redirect] Redirecting to receipt page
Styled with rich under the hood.
warn("User has no saved card", label="user check")By default, geezer only prints in dev:
DJANGO_DEBUG=TrueOr override manually using the force=True flag.
Because sometimes the old ways are the best.
Geezer gives you raw, readable feedback — with zero setup, and max personality.
- Console styling with
rich - Utility functions (
warn) - Emoji + label tagging
- Framework agnostic setting for when to show geezer prints in production or dev
Pull up a chair.
Throw in a prnt() or log().
Talk to yourself a little.
You earned it, geezer.

