Skip to main content

Old-school debug logging for stylish devs

Project description

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.

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

geezer-0.1.3.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

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

geezer-0.1.3-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

File details

Details for the file geezer-0.1.3.tar.gz.

File metadata

  • Download URL: geezer-0.1.3.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for geezer-0.1.3.tar.gz
Algorithm Hash digest
SHA256 9841d6c954a2732fbb6532a272200731ed8aba7fc9a5d34b9f30e45b12b369eb
MD5 15a84124c769345ac38b523c6a37ddfd
BLAKE2b-256 92192157653f6bfdf50abf4e6d9d013096057a155322a5465b4f011aec763ca1

See more details on using hashes here.

File details

Details for the file geezer-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: geezer-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 6.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for geezer-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6d82a0c7ef55c0a427af83d36d00fae0d2dda636e47c6a4d510df4dc1ad562de
MD5 e2b87bade04b2a9c1d6d498405082e7e
BLAKE2b-256 38e47d17ce38428bdbbd7d8844d4a1b9361bbf99b7c670e794aa4f54b4bcb8b1

See more details on using hashes here.

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