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.