home / skills / dicklesworthstone / meta_skill / logging-patterns
This skill teaches structured logging practices with correlation IDs and appropriate levels to improve observability and debugging visibility.
npx playbooks add skill dicklesworthstone/meta_skill --skill logging-patternsReview the files below or copy the command above to add this skill to your agents.
---
id: logging-patterns
name: Logging Patterns
description: >-
Common logging patterns and practices. This skill is designed to be
included in composite skills via the 'includes' feature.
tags: [logging, observability, example]
---
# 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
```rust
// 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)
}
}
}
```
This skill collects proven logging patterns and practices for building observable, maintainable applications. It focuses on structured logs, correlation IDs, sensible log levels, and avoiding sensitive data so teams can diagnose issues quickly without exposing secrets.
The skill summarizes rules, common pitfalls, and concrete examples (including idiomatic Rust snippets) so it can be embedded in larger toolchains or documentation. It inspects logging design choices and recommends changes: use key-value structured logging, attach correlation/request IDs, pick appropriate log levels, and strip sensitive fields before writing logs.
What exactly is structured logging and why prefer it?
Structured logging emits key-value pairs instead of free text, enabling efficient search, filtering, and automated analysis in log platforms.
How should I handle sensitive fields?
Never write raw secrets or PII to logs. Redact, hash, or omit sensitive fields and centralize sanitization in middleware or logging helpers.