Skip to main content

Geezer

Old-school logging for stylish Django devs.
Use print() with ✨ taste and purpose — with color, emoji, memory, and style.

PyPI version


Geezer Logo


What is Geezer?

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.


🖥️ Terminal Support

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

⚠️ Note: PyCharm's terminal or legacy consoles may not render colors or emojis properly. Use an external terminal for full effect.


Install

pip install geezer

📦 PyPI: https://pypi.org/project/geezer/


Usage

✅ Basic logging

from geezer import log, warn, timer

log("Booting system", "⚙️", "startup")

✅ Custom print / log name

from geezer import log as prnt

prnt("Loading NIBBLES.BAS", "🐍", "games")

⚠️ Warnings

warn("No config file found", "config check")

🏷️ Tags & Emojis

log("Launching rockets", "🚀", "deployment")
log("Inventory loaded", "📦", "warehouse")
log("Shields down! Taking damage!", "💥", "defense")
log("Poop scooped successfully", "💩", "can-doo")

⏱️ Timed blocks

with timer("checkout flow"):
    run_checkout()

🧠 Log history

from geezer import get_log_history

for entry in get_log_history():
    print(entry["timestamp"], entry["message"])

🤖 Auto-tagging

import geezer.log
geezer.log.auto_tagging = True

log("Checkout complete")  # gets auto-tagged ✅
log("Payment gateway choked")  # auto-tagged 🤮

More fun examples

log("Connecting to mothership", "🛸", "api")
log("New customer signed up", "🧍", "user event")
log("Refresh token expired", "⏳", "auth")
log("Cache hit for homepage", "🧠", "performance")
log("Dark mode enabled", "🌚", "settings")
log("New dog uploaded to gallery", "🐶", "media")
log("Geezer initialized and logging like a pro", "🧓", "geezer-core")
log("New deal created", "🛒", "deal")

Output Example

[🛒 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.

Screen Shot


✨ Features

🟡 warn()

warn("User has no saved card", "user check")

⏱️ timer()

with timer("checkout process"):
    run_checkout()

🧠 Log history

from geezer import get_log_history

logs = get_log_history()
for entry in logs:
    print(entry["timestamp"], entry["message"])

🤖 Auto-emoji

Enable auto-tagging:

import geezer.log
geezer.log.auto_tagging = True

Now this:

log("API call failed due to timeout")

Becomes:

[❌ error] API call failed due to timeout

Config

By default, geezer only prints in dev:

DJANGO_DEBUG=True

Or override manually with "ok" as the last argument.


Why “Geezer”?

Because sometimes the old ways are the best.
Geezer gives you raw, readable feedback — with zero setup, and max personality.


Roadmap

  • Console styling with rich
  • Utility functions (warn, timer)
  • Emoji + label tagging
  • In-memory log history
  • Auto emoji detection
  • File logging
  • Timestamp prefix toggle
  • Custom output backends (file, webhook, etc)
  • geeze() alias just for fun

Pull up a chair.
Throw in a prnt() or log().
Talk to yourself a little.

You earned it, geezer.

Metadata

Release files for geezer 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for geezer 0.1.3
File Size Uploaded
geezer-0.1.3.tar.gz 6.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for geezer 0.1.3
File Interpreter ABI Platform
geezer-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 12.3 kB

Release files / geezer-0.1.3.tar.gz

Download URL geezer-0.1.3.tar.gz
Size 6.0 kB
Tags Source
SHA-256 checksum
How to use checksums
9841d6c954a2732fbb6532a272200731ed8aba7fc9a5d34b9f30e45b12b369eb
BLAKE2b-256 checksum
How to use checksums
92192157653f6bfdf50abf4e6d9d013096057a155322a5465b4f011aec763ca1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.4

Release files / geezer-0.1.3-py3-none-any.whl

Download URL geezer-0.1.3-py3-none-any.whl
Size 6.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6d82a0c7ef55c0a427af83d36d00fae0d2dda636e47c6a4d510df4dc1ad562de
BLAKE2b-256 checksum
How to use checksums
38e47d17ce38428bdbbd7d8844d4a1b9361bbf99b7c670e794aa4f54b4bcb8b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.4

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page