Logging Patterns

SkillMonitoring & ops

Common logging patterns and practices. This skill is designed to be included in composite skills via the 'includes' feature.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Logging Patterns skill

What this skill tells your AI

The instructions your AI receives, as published by dicklesworthstone/remote_compilation_helper in skills/examples/logging-patterns/SKILL.md and read by ahel’s review.

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)
        }
    }
}

Signals

GitHub stars
60
Forks
4
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
logging-patterns-dicklesworthstone
Source
github.com/dicklesworthstone/remote_compilation_helper