logging

Configures centralized logging handlers, per-mode log routing, and session logs for the yeaboi TUI.

4|Updated Mar 17, 2026
One-click install
npx skills add https://github.com/yeaboi-ai/yeaboi.ai --skill logging-yeaboi-ai
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: logging
Source: https://github.com/yeaboi-ai/yeaboi.ai/tree/main/.claude/skills/logging
Command: npx skills add https://github.com/yeaboi-ai/yeaboi.ai --skill logging-yeaboi-ai

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Developers working on the yeaboi codebase risk creating inconsistent log files, hardcoding paths, or flooding per-frame render code with log calls. This Skill centralizes all logging rules so every handler, log directory, and log level follows one convention defined in logging_setup.py and paths.py. ## Core Features & Use Cases - Central handler setup: All FileHandler creation goes through src/yeaboi/logging_setup.py with one shared format, rotation (2 MB, 3 backups), and a WARNING fallback level. - Mode and session log routing: Use the mode_log context manager for per-mode logs (standup, retro, performance, reporting, analysis) and attach_session_log for per-planning-session logs under ~/.yeaboi/logs/. - Runtime level control: Change verbosity live via the LOG_LEVEL env var or the Settings page, which calls apply_level() to retune all attached handlers. - Use Case: When adding a new mode page to the TUI, wrap its runner in with mode_log("mymode"): so all records route to ~/.yeaboi/logs/mymode/mymode.log without writing any handler boilerplate. ## Quick Start Ask the AI to add logging to a new mode page following the central logging rules in logging_setup.py.

Frequently Asked Questions about logging

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add logging to a new mode in the yeaboi TUI?

Wrap the mode's runner in `with mode_log("<mode>"):` from logging_setup.py. This routes all log records to ~/.yeaboi/logs/<mode>/<mode>.log while the page runs and detaches the handler automatically on exit or exception.

How do I change the log level at runtime in a Python TUI app?

Set the LOG_LEVEL environment variable (DEBUG, INFO, WARNING, or ERROR, default WARNING) via .env or the Settings page. The Settings cycle button calls config.set_log_level() plus apply_level(), which retunes the yeaboi logger and every attached handler live.

Where are yeaboi log files stored?

Logs live under ~/.yeaboi/logs/: tui/yeaboi.log for the main app, per-mode directories like standup/ and retro/, planning/{session-id}.log for planning sessions, and app/app.log for the desktop backend. All paths come from src/yeaboi/paths.py, never hardcoded.

Why should logging be avoided in per-frame render code?

Screen builders and render paths run every frame at roughly 60 fps, so logging there floods files and hurts performance. Log only in key-handling branches of runner loops and one-shot functions, using INFO for user actions and DEBUG for detail.

What should never be written to application log files?

Never log secrets, tokens, join codes, or user content. Log only ids, counts, names, and paths so logs remain safe to share for debugging without exposing credentials or private data.