Claude-skill-registry Logging Patterns

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/logging-patterns" ~/.claude/skills/majiayu000-claude-skill-registry-logging-patterns && rm -rf "$T"
manifest: skills/data/logging-patterns/SKILL.md
source content

Logging Patterns

Foundational logging practices for observable applications.

Rules

  • Use structured logging (key-value pairs, not interpolated strings)
  • Include request/correlation IDs in all log entries
  • Log at appropriate levels (DEBUG, INFO, WARN, ERROR)
  • Include enough context to debug issues without the code
  • Don't log sensitive information (passwords, tokens, PII)

Pitfalls

  • Logging sensitive data (passwords, API keys, PII)
  • Inconsistent log levels across the codebase
  • Missing correlation IDs in distributed systems
  • Logging at wrong levels (DEBUG in prod, ERROR for non-errors)

Examples

// Structured logging with tracing
use tracing::{info, error, instrument};

#[instrument(skip(password))]
fn authenticate(user_id: &str, password: &str) -> Result<Token> {
    info!(user_id, "authentication attempt");

    match verify_credentials(user_id, password) {
        Ok(token) => {
            info!(user_id, "authentication successful");
            Ok(token)
        }
        Err(e) => {
            error!(user_id, error = %e, "authentication failed");
            Err(e)
        }
    }
}